Dlaczego „słowo kluczowe grep” powoduje, że terminal pozostaje w gotowości na zawsze?
25
Kiedy wpisuję „grep doc” w terminalu, po prostu nic nie robię, powstrzymując terminal przed zrobieniem czegokolwiek innego, zanim ucieknę za pomocą Ctrl+ Club Z.
Wiem, że nie tak powinienem używać grep, ale po prostu ciekawe, dlaczego tak się dzieje.
grep domyślnie wyszukuje standardowe dane wejściowe, jeśli nie podano żadnych plików:
grep przeszukuje nazwane PLIKI wejściowe (lub standardowe wejście, jeśli nie ma nazw plików lub jeśli jako nazwę pliku podano pojedynczy łącznik minus (-)) w poszukiwaniu linii zawierających dopasowanie do podanego WZORCA. Domyślnie grep drukuje pasujące linie.
Jeśli po prostu zrobisz grep docgrep oczekuje, że wejdzie standardowe wejście i będzie ono wyszukiwać w nim (nie wpisuj części pomiędzy <i >do terminala, to są komentarze):
$ grep doc
a b c <PRESS ENTER HERE>
doc <NO MATCH WAS FOUND IN PREVIOUS LINE, TYPE doc AND PRESS ENTER AGAIN>
doc <MATCH WAS FOUND>
Dobra odpowiedź. Chciałem tylko zauważyć, że prawie nikt nigdy nie musi używać grep, wpisując tak, ale pozwala to na przesyłanie standardowych danych wyjściowych z poprzedniego polecenia, co jest bardzo przydatne.
@KarlBielefeldt: W rzeczywistości jest to wygodny sposób na debugowanie skomplikowanych wyrażeń regularnych. Możesz uruchomić coś takiego grep '([a-z]+[0-9]*.x){2,3}'i wpisać kilka przykładowych linii na klawiaturze, aby upewnić się, że pasuje do tego, co myślisz, że działa. Linie, które pasują, zostaną powtórzone, linie, które nie będą.
@NateEldredge: Dziękujemy za podanie praktycznego przykładu! Zawsze patrzyłem na bezimienne inwokacje takich rzeczy jak grep i cat jako głównie teoretyczne.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.