a.txt:
1;john;125;3
1;tom;56;2
2;jack;10;5
b.txt:
1;john;125;3
1;tom;58;2
2;jack;10;5
Použijte comm:
comm -13 a.txt b.txt
1;tom;58;2
Možnosti příkazového řádku jsou comm
jsou docela přímočaré:
-1 potlačí sloupec 1 (řádky jedinečné pro FILE1)
-2 potlačí sloupec 2 (řádky jedinečné pro SOUBOR2)
-3 potlačí sloupec 3 (řádky, které se objevují v obou souborech)
Zde je jednoduché řešení, které je podle mě lepší než diff
:
sort file1 file2 | uniq -u
sort file1 file2
zřetězí dva soubory a seřadí jeuniq -u
vytiskne jedinečné řádky (které se neopakují). Vyžaduje, aby byl vstup předem seřazen.
Pomocí specifikátorů skupinového formátu můžete potlačit tisk nezměněných řádků a vytisknout pouze změněné řádky pro změněné
diff --changed-group-format="%>" --unchanged-group-format="" file1 file2
Za předpokladu, že chcete zachovat pouze řádky jedinečné pro soubor 2, můžete:
comm -13 file1 file2
Všimněte si, že comm
příkaz očekává, že dva soubory budou v seřazeném pořadí.