Shell-Script
用於顯示兩個文本文件之間差異的 Bash 腳本
假設我有兩個列表:
guests-2016.txt
:Peter Michael Frank Dirk
guests-2017.txt
:Mark Michael Dirk Lilly
如何創建兩個新的客人名單
- 已入住
guests-2016.txt
但未入住guests-2017.txt
(former_guests.txt
)的客人- 未入住
guests-2016.txt
但guests-2017.txt
現在入住的客人 (new_guests.txt
)應該忽略空行。只能使用標準實用程序。
我的想法是使用
diff
並進行一些後期處理。
給定兩個排序的文件,
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