Text-Processing

找到兩個連續的重複行

  • January 4, 2022

如何在文件中找到兩個連接的重複行?

例如,在這個文件中,我們只有兩個連接的重複行:

OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.ear
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter <--
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter <--
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.xml

Uniq 應該足夠了:

$ cat c.txt
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.ear
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.xml

$ uniq -D c.txt
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter

$ uniq c.txt
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.ear
OQ-63/ECC/Global/MES/CZ/adWerum-CZ-Adapter
OQ-63/ECC/Global/MES/54/ECC-MRP-S05.xml

預設情況下,uniq 檢查輸入文件的相鄰行。因此,對於未排序的文件(如您的情況),uniq 將完成您想要的工作。

您可能還對 uniq -d 和 -u 選項感興趣。有關更多詳細資訊,請參見手冊頁(-d 僅列印兩個重複行之一,-u 僅列印 uniq 行 - 刪除兩個重複條目)。

引用自:https://unix.stackexchange.com/questions/339657