nie mogłem tego znaleźć na SO. Uruchomiłem następujące polecenie w terminalu:
>> grep -Rl "curl" ./
i wyświetla listę plików, w których występuje zwijanie się słowa kluczowego. Chcę policzyć liczbę plików. Pierwszy sposób, jaki mogę wymyślić, to policzyć liczbę linii na wyjściu, które przyszły w terminalu. Jak mogę to zrobić?
-c
flagę, która po prostu zwraca liczbęOdpowiedzi:
Prześlij wynik za
wc
pomocą przełącznika-l
( liczba wierszy ):źródło
grep "" -c
ale to jest o wiele ładniejsze :)grep -c
należy użyć funkcji wbudowanej zamiast przesyłać dane wyjściowe do innego programu. Np. Nie zmieniłbyś nawet znaków w dokumencie Word za pomocą innego edytora tekstu niż Word, prawda?Umieszczając tutaj komentarz EaterOfCode jako odpowiedź.
Tak więc polecenie i dane wyjściowe mogą wyglądać następująco.
EDYTOWAĆ:
Chociaż ta odpowiedź może być krótsza, a zatem może wydawać się lepsza niż odpowiedź zaakceptowana (która jest używana
wc
). Nie zgadzam się już z tym. Pamiętam, że pamiętanie, że można liczyć wiersze za pomocą pipingu,wc -l
jest o wiele bardziej przydatne, ponieważ można go używać z innymi programami niżgrep
również.źródło
Rurowanie do „wc” mogłoby być lepsze JEŚLI ostatnia linia kończy się nową linią (wiem, że w tym przypadku tak się stanie)
Jednak jeśli ostatnia linia nie kończy się nową linią, „wc -l” zwraca fałszywy wynik.
Na przykład:
Wróci
1
iWróci
0
Więc często używam
grep <anything> -c
Jest to bliższe rzeczywistości niż to
wc -l
, co powróci.źródło