2013-05-19 7 views
36

Podczas korzystania z polecenia Grep do znalezienia ciągu wyszukiwania w zbiorze plików, czy istnieje sposób, aby zrzucić wyniki do pliku tekstowego? Czy istnieje również przełącznik dla polecenia Grep, który zapewnia czystsze wyniki dla lepszej czytelności, , takie jak posuw w linii między poszczególnymi wpisami? Być może jest to skrypt, który wyświetla wyniki Grep czystszychUżywanie polecenia Linux Grep - potrzebne wyjście do pliku tekstowego, czystsze wyjście

Thanks

Odpowiedz

21

Przekierowanie wyjścia programu jest wykonywane przez powłokę.

grep ... > output.txt 

grep ma mechanizm dodawania pustych linii między każdym meczu, ale nie przewiduje opcji, takich jak kontekst wokół dopasowanej linii i koloryzacji samego meczu. Szczegółowe informacje znajdują się na stronie podręcznika grep(1), w szczególności na opcjach -C i .

56
grep -n "YOUR SEARCH STRING" * > output-file 

The -n drukuje numer wiersza i > przekieruje grep-wyniki do plik-wyj.
Jeśli chcesz „czyste” wyniki można filtrować je za pomocą rury | na przykład:
grep -n "test" * | grep -v "mytest" > output-file dopasuje wszystkie linie, które mają ciąg „test” z wyjątkiem linii pasujących ciąg „mytest” (to przełącznik -v) - i przekieruje wynik do pliku wyjściowego.
Kilka dobrych grep-napiwków można znaleźć on this post

+7

Czy grep pisze tylko wtedy, gdy kończy, czy też zapisuje wiersz po linii, ponieważ przetwarza zawartość? Dzięki! – Crista23

+4

@alfasin - czy pojedynczy plik ">" nie zastąpi wyników w pliku wyjściowym? Czy nie powinniśmy użyć podwójnego ">>" w celu dołączenia wyników do pliku? – GTodorov

+3

@GTodorov tak, jeśli chcesz dołączyć, użyj '>>' – alfasin