Unixテキスト処理

Unixテキスト処理

テキストファイル2つ。 2つのテキストファイルでuniq値を見つけ、3番目のファイルからファイル名とuniq値を持つ出力を取得する必要があります。たとえば、a.txt

1
4
3

b.txt

2
1
7

出力

File.out
b.txt 2
a.txt 3
a.txt 4
b.txt 7

私は次のコマンドを試しました

cat a.txt b.txt | sort | uniq -u >>file.out

ただし、ファイル名を取得せずに値のみを印刷します。

答え1

Awkを使用してファイル名の前に追加してから、2番目のフィールドを+ uniqで並べ替えることができます。

$ awk '{print FILENAME,$0}' a.txt b.txt | sort -k2 | uniq -uf1
b.txt 2
a.txt 3
a.txt 4
b.txt 7

関連情報