Jak ukryć wyniki dopasowywania plików binarnych w grep [zamknięte]
215
Podczas używania grepw systemie Linux wynik często zawiera wiele „dopasowań pliku binarnego XXX”, na których mnie to nie obchodzi. Jak ukryć tę część wyników lub jak wykluczyć pliki binarne w grep?
@skwllsp Ale przy opcji -l wyniki nie zawierają dopasowanej linii, a jedynie dopasowaną nazwę pliku.
RandyTek,
Istnieje opcja dla linii: grep -I -n -H
6
To nie jest temat? Wow
CoffeeTableEspresso
Odpowiedzi:
302
Istnieją trzy opcje, których możesz użyć. -Ijest wykluczenie plików binarnych w grep. Inne dotyczą numerów linii i nazw plików.
grep -I -n -H
-I -- process a binary file as if it did not contain matching data;
-n -- prefix each line of output with the 1-based line number within its input file
-H -- print the file name for each match
Użyłbym, -Irngdzie roznacza rekurencję, aby zajrzeć do wszystkich folderów. Hjest tutaj wyjątkowo
vladkras,
@vladkras, „H jest tutaj nadmierna” - masz na myśli redundancję, tzn. jest już domyślna?
cp.engr
Dziękujemy za wyjaśnienie, co oznaczają krótkie opcje w odpowiedzi. Na SO jest tak wiele odpowiedzi na polecenia z linse, które nie dają żadnego wyjaśnienia, co mnie denerwuje.
jrahhali
1
@AaronFranke: -nFlaga informuje grep, aby zgłosił numery wierszy plików, w których znalazł dopasowanie. „1-oparty” oznacza, że liczenie linii zaczyna się od jednego, a nie od zera, jak to często się dzieje w programowaniu. Tak więc, jeśli pierwszy wiersz o nazwie pliku example.txtto Hello, world, drugi wiersz to Hello cat, a trzeci wiersz to cats are cool, a następnie wyszukanie „cat” przez grep -n cat example.txt, otrzymasz example.txt:2: Hello cati example.txt:3: cats are cool.
jvriesem
11
To stare pytanie, na które udzielono odpowiedzi, ale pomyślałem, że umieszczę tutaj opcję --binary-files = text dla każdego, kto chce z niej skorzystać. Opcja -I ignoruje plik binarny, ale jeśli chcesz, aby grep traktował plik binarny jako plik tekstowy, użyj --binary-files = tekst tak:
Odpowiedzi:
Istnieją trzy opcje, których możesz użyć.
-I
jest wykluczenie plików binarnych w grep. Inne dotyczą numerów linii i nazw plików.Może to być sposób na uruchomienie grep:
źródło
-Irn
gdzier
oznacza rekurencję, aby zajrzeć do wszystkich folderów.H
jest tutaj wyjątkowo-n
Flaga informuje grep, aby zgłosił numery wierszy plików, w których znalazł dopasowanie. „1-oparty” oznacza, że liczenie linii zaczyna się od jednego, a nie od zera, jak to często się dzieje w programowaniu. Tak więc, jeśli pierwszy wiersz o nazwie plikuexample.txt
toHello, world
, drugi wiersz toHello cat
, a trzeci wiersz tocats are cool
, a następnie wyszukanie „cat” przezgrep -n cat example.txt
, otrzymaszexample.txt:2: Hello cat
iexample.txt:3: cats are cool
.To stare pytanie, na które udzielono odpowiedzi, ale pomyślałem, że umieszczę tutaj opcję --binary-files = text dla każdego, kto chce z niej skorzystać. Opcja -I ignoruje plik binarny, ale jeśli chcesz, aby grep traktował plik binarny jako plik tekstowy, użyj --binary-files = tekst tak:
źródło