Czy poza wygodą są jakieś dodatkowe korzyści związane z przechwytywaniem pliku i przesyłaniem go do grepa? Wygoda polega na tym, że kiedy pobieram polecenia z mojej historii, takie jak te poniżej, kursor znajduje się na końcu wiersza, więc łatwo jest zmodyfikować polecenie innym tekstem, aby grep na tym samym pliku.
Jakie więc mogą być inne zalety następującej konwencji:
cat /var/tmp/trace.2043925204.xt | grep -in profile
cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main
zamiast:
grep -in profile /var/tmp/trace.2043925204.xt
grep -n Profile-Main /var/tmp/trace.2043925204.xt
cat
jest o wiele bardziej czytelny niż<
. A może tylko dla nas mglistych, którzy myślą, że Unix i bash mogą się wiele nauczyć od VMS i DCL.Nie ma przewagi. Kursor znajdujący się na końcu również nie ma większego znaczenia, jeśli zamiast tego utworzysz taką strukturę:
< inputfile grep -args foo
źródło
W tej sytuacji po prostu wcale nie musisz używać kota. Jest to niepotrzebne i strata czasu, ponieważ narzędzia takie jak grep traktują nazwy plików jako argumenty.
Aktualizacja: Dzięki, @Andy Lester, za zwrócenie uwagi, że te czasy nie uwzględniają pamięci podręcznej dysku. Nauczyłem się czegoś nowego! Ale oszczędności ułamka sekundy i tak nie mają większego znaczenia. Po prostu myślę, że podłączenie kota do grepa nie jest logicznym sposobem robienia rzeczy. To tak, jakby poprosić kogoś innego o pomoc w rozwiązaniu problemu, gdy jesteś w stanie samodzielnie rozwiązać problem.
źródło
Łatwość edycji jest jedyną prawdziwą zaletą, a jeśli robisz to w wierszu poleceń, dodatkowy czas potrzebny na uruchomienie
cat
i wykonanie potoku naprawdę nie zrobi różnicy.Jednak nie ma powodu, aby robić to w skrypcie powłoki.
źródło
W ogóle nie ma korzyści. Zamiast martwić się o modyfikację poleceń, naucz się lepiej nawigować po linii poleceń powłoki za pomocą klawiszy i skrótów przyspieszających.
źródło
Nie, a w podanym przykładzie może być nawet nieco wolniejszy.
pipe
Jest tworzony między kotem a grep, która nie jest wymagana przy przejściu nazwę pliku bezpośrednio do grep. Jednak nie sądzę, aby pod żadnym pozorem zaobserwować ograniczenia przepustowości z tego powodu.Inne zalety przesyłania danych wejściowych do grep obejmują wcześniejsze przetwarzanie, takie jak użycie narzędzi z bardziej zaawansowanymi możliwościami odczytu plików. (Zobacz
tee
,zcat
między innymi).źródło