だから、2つの異なるファイルがあります。
ファイル1.txtは次のとおりです。
abcdefjeiireiiioe:data:otherdata
rijirjeiwrieeoooe:datamore:otherdatamore
ファイル2.txtは次のとおりです。
abcdefjeiireiiioe:data:otherotherdata
rijirjeiwrieeoooe:datamore:otherotherdatamore
*other random lines which do not occur in file1.txt also and are not needed
次のように見えるように同じ行に印刷するにはどうすればよいですか?
abcdefjeiireiiioe:data:otherdata:data:otherotherdata
答え1
2行目もマージしたいとします。あなたはそれを使用することができますjoin
:
join -t : file1 file2
これは解析され、file1
区切り文字file2
として使用され、:
最初のフィールドが一致する行をマージします。デフォルトでは、一致しない行は無視され、出力には表示されません。
入力ファイルは結合フィールドでソートする必要があります。そうでない場合は、次のように前処理できます。
join -t : <(sort -k 1,1 -t : file1) <(sort -k 1,1 -t : file2)
あるいは、ソートチェックを無視してみることもできます。
join -t : --nocheck-order file1 file2