
以下のように2つのファイルがあります。
- File1 File1には5つの国があります。
>USA
>England
>France
>Japan
>Thailand
- File2 File2には4つしかありません。
>USA
>England
>Japan
>Thailand
paste -d "," file1.txt file2.txt1
2つのファイルをマージするために使用します
- 出力
>USA ,>USA
>England,>England
>France,>Japan
>Japan,>Thailand
>Thailand,
ここに示すように、File2 -Franceに欠落している値があるため、2つの出力ファイルのリストの順序が一致しません。代わりに「フランス」以降は変わりました。
- 欲求出力
>USA >USA
>England >England
>France >0 (or any symbols)
>Japan >Japan
>Thailand >Thailand
2つのファイルをマージし、欠落値を0に置き換えますが、残りの順序は一致するようにするUNIXステートメントをどのように作成できますか?追加、変更、修正すべき事項paste -d "," file1.txt file2.txt1
どんな助けでも大変感謝します。ありがとうございます。
答え1
「すべての記号」は大丈夫だったので、diffだけで十分です。
diff -w -y file1 fiel2
>USA >USA
>England >England
>France <
>Japan >Japan
>Thailand >Thailand
行が不足しているか、またはで表され、>
それぞれ<
file2または1に表示されます。-w
比較中、スペースは無視されます。
答え2
使用awk
:
awk 'NR==FNR{a[$1]=$1;next}
{if ($1 in a) print a[$1],$1; else print $1 ,">0"}' file2 file1