2つのリストがあるとしましょう:
guests-2016.txt
:
Peter
Michael
Frank
Dirk
guests-2017.txt
:
Mark
Michael
Dirk
Lilly
ゲストの2つの新しいリストを作成するにはどうすればよいですか?
guests-2016.txt
にいるが、guests-2017.txt
にはないゲスト(former_guests.txt
)
guests-2016.txt
にいなかったが、現在guests-2017.txt
にいるゲスト(new_guests.txt
)
空白行は無視する必要があります。標準のユーティリティのみを使用する必要があります。
私の考えは、diff
を使用して、後処理を行うことです。
2つのsortedファイルが与えられた場合、comm
がこれを行います。
たとえば、-2 -3
コマンドラインオプションと-1 -3
コマンドラインオプションの組み合わせを参照してください。
チェック、それは仕事をしますか。必要に応じて説明を追加します。
awk '
/^$/{next}
FNR == NR {guest_2016[$1] = 1}
FNR != NR {
if(!guest_2016[$1])
print $1 > "new_guests.txt"
delete guest_2016[$1];
}
END {
for(i in guest_2016)
print i > "former_guests.txt"
}' guests-2016.txt guests-2017.txt