Powiedzmy, że mamy plik tekstowy z zakazanymi liniami forbidden.txt
. Jaki jest krótki sposób na odfiltrowanie wszystkich wierszy danych wyjściowych polecenia, które istnieją w pliku tekstowym?
cat input.txt | exclude-forbidden-lines forbidden.txt | sort
fgrep -vxf forbidden.txt input.txt | sort
Odpowiedzi:
Użyj w
grep
ten sposób:Ta długa lista opcji
grep
oznacza-v
Odwróć sens dopasowania, tzn. Poszukaj rzeczy, które nie pasują .-x
Dopasowując wzór, wymagaj, aby wzór pasował do całej linii , tj. Nie tylko w dowolnym miejscu linii.-F
Podczas dopasowywania wzorca traktuj go jako stały ciąg , tzn. Nie jako wyrażenie regularne.-f
Odczytaj wzorce z podanego pliku (forbidden.txt
).Następnie potokuj to
sort
lub cokolwiek chcesz z tym zrobić.źródło