17.16. Wyszukiwanie wierszy tylko jednego pliku

Problem

Musimy porównać dwa pliki danych i wyodrębnić te wiersze jednego z nich, które nie występują w drugim.

Rozwiązanie

Pierwsza czynność polega na posortowaniu treści i wyodrębnieniu odpowiednich fragmentów za pomocą instrukcji cut lub awk. Następnie w zależności od potrzeb można wykorzystać narzędzia takie jak comm, diff, grep czy uniq.

Oto przykład wykonania zadania za pomocą instrukcji comm:

$ cat lewy
rekord_01
rekord_02.tylko w lewym
rekord_03
rekord_04
rekord_05.różnica
rekord_06
rekord_07
rekord_08
rekord_09
rekord_10

$ cat prawy
rekord_01
rekord_02
rekord_04
rekord_05
rekord_06.różnica
rekord_07
rekord_08
rekord_09.tylko w prawym
rekord_10

# Tylko wiersze pliku lewy
$ comm -23 lewy prawy

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.