2つのファイル(Extensions.txt)を比較しようとしています およびTemp.txt )。 Extensions.txtから部分的に一致しない行がある場合 Temp.txtで 不足している行をTemp.txtに追加したいと思います 。
 Extensions.txt (非常に基本的な、1列):
111
1234
4321
 Temp.txt :
1234/sip:[email protected]:5060  9421b96c5e   Avail   1.480
4321/sip:[email protected]:5060  e9b6b979a4   Avail   1.855
 基本的に、私がやりたいのは、/の前のすべてに基づいて一致するものを見つけることです 最初の列に一致するものがない場合は、一致しない行をファイルの最後に印刷して、次のようにします。
1234/sip:[email protected]:5060 9421b96c5e Avail 1.480
4321/sip:[email protected]:5060 e9b6b979a4 Avail 1.855
111
 これまで、grep -vを試しました 希望する結果が得られないので、awkも試してみました それが道のりのようですが、awkの方法を完全には理解していません。 適切な結果を生み出すために機能します。
承認された回答:
 awkを使用してファイルを解析できます 
awk -F '/' '
    FNR == NR {seen[$1] = $0; next}
    {if ($1 in seen) print seen[$1]; else missing[$1]}
    END {for (x in missing) print x}
' Temp.txt Extensions.txt
出力:
1234/sip:[email protected]:5060 9421b96c5e Avail 1.480
4321/sip:[email protected]:5060 e9b6b979a4 Avail 1.855
111
- フィールドセパレータをスラッシュに設定します。-F '/'
-  FNR == NRの後のアクション 最初の入力ファイルの行に対して実行されます。連想配列seenに行を格納します キーとして、nextに移動します 行。
-  FNR != NRの場合、2番目のアクションは2番目のファイルに対して実行されます。 。最初のフィールドが一致する場合、保存された行elseを出力します フィールドを別の配列に保存しますmissing。
-  ENDで 、不足している行を印刷します。