Próbuję wywołać takie zachowanie:
grep 192.168.1 *.txt
Przekazując ciąg znaków do grep przez Xargs, ale kończy się on jako pierwszy parametr.
echo 192.168.1 | xargs grep *.txt
Muszę powiedzieć xargs (lub coś podobnego), aby umieścił przychodzący ciąg między „grep” i „*” zamiast na końcu.
Jak mam to zrobic?
Odpowiedzi:
Przykład
Przykładowe pliki:
Przykładowy przebieg:
źródło
Inne podejście:
Nie spowoduje to przepełnienia długości wiersza poleceń powłoki zbyt dużą liczbą nazw plików. Aby uniknąć mylenia
xargs
/grep
z nazwami plików, które mają spacje,-print0
a-0
opcje będą określać każdą znalezioną nazwę z wartością null zamiast z LF.źródło