Z szacunkiem dla pracy poprzednich autorów chciałbym podkreślić, że te dwa polecenia robią (nieco) różne rzeczy. Komenda OP łączy wszystkie pliki foo * .txt i przeszukuje połączony wynik pewnego razu aby zobaczyć, czy pojawia się napis „krowa”. Komenda @Patrice Levesque wykonuje wyszukiwanie N, po jednym dla każdego pasującego N pliku.
Choć co prawda niejasne i wymyślone, możliwe jest tworzenie przypadków, w których polecenie OP działa i nieudane polecenie nie powiedzie się:
$ for C in w c o; do printf '%s' "$C" > foo-$C.txt; done
$ grep cow foo*.txt
$ cat foo*.txt | grep cow
cow
$ rm foo*
$ printf "wilco" > foo-1.txt
$ cp foo-1.txt foo-2.txt
$ grep cow foo*.txt
$ cat foo*.txt | grep cow
wilcowilco
Chodzi mi o to, że może nie bądź zły sposób, aby to zrobić, w zależności od tego, co próbujesz zrobić.
Odpowiedzi:
Możesz przekazywać nazwy plików do
grep
:To „złe”, ponieważ używasz
cat
kiedy tego nie potrzebujesz, naprawdę.źródło
Z szacunkiem dla pracy poprzednich autorów chciałbym podkreślić, że te dwa polecenia robią (nieco) różne rzeczy. Komenda OP łączy wszystkie pliki foo * .txt i przeszukuje połączony wynik pewnego razu aby zobaczyć, czy pojawia się napis „krowa”. Komenda @Patrice Levesque wykonuje wyszukiwanie N, po jednym dla każdego pasującego N pliku.
Choć co prawda niejasne i wymyślone, możliwe jest tworzenie przypadków, w których polecenie OP działa i nieudane polecenie nie powiedzie się:
Chodzi mi o to, że może nie bądź zły sposób, aby to zrobić, w zależności od tego, co próbujesz zrobić.
źródło