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
私の考えは、いくつかの後処理を使用して実行することです。
答え1
2個与えられるソート済みファイルはcomm
これを行います。
たとえば、-2 -3
コマンドラインオプションの組み合わせを参照してください。-1 -3
答え2
作業が完了したことを確認してください。必要に応じて説明を追加できます。
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