Plik a.txt
ma około 100 000 słów, każde słowo znajduje się w nowej linii
july.cpp
windows.exe
ttm.rar
document.zip
Plik b.txt
zawiera 150 000 słów, jedno słowo po wierszu - niektóre słowa pochodzą z pliku a.txt
, ale niektóre są nowe:
july.cpp
NOVEMBER.txt
windows.exe
ttm.rar
document.zip
diary.txt
Jak mogę scalić te pliki w jeden, usunąć wszystkie zduplikowane linie i zachować nowe linie (linie, które istnieją, a.txt
ale nie istnieją b.txt
i odwrotnie)?
text-processing
Kate-Kasia
źródło
źródło
Odpowiedzi:
Jest to polecenie, aby to zrobić:
comm
. Jak stwierdzono wman comm
, jest to po prostu proste:Pamiętaj, że
comm
oczekuje ona sortowania zawartości plików, dlatego musisz je posortować przed ich wywołaniemcomm
:Więc by podsumować:
Po powyższych poleceniach będziesz mieć oczekiwane linie w
result.txt
pliku.źródło
Oto krótki skrypt python3, oparty na odpowiedzi Germara , który powinien to zrobić, zachowując
b.txt
nieposortowaną kolejność.źródło
źródło
Spójrz na
comm
komendę coreutils -man comm
Na przykład możesz to zrobić
(linie unikalne dla
b.txt
)źródło