Chcę znaleźć polecenie bash, które pozwoli mi grepować każdy plik w katalogu i zapisać dane wyjściowe tego grepa w oddzielnym pliku. Przypuszczam, że zrobiłbym coś takiego
ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out"
ale, o ile wiem, xargs nie lubi podwójnych cudzysłowów. Jeśli jednak usunę podwójne cudzysłowy, polecenie przekieruje dane wyjściowe całego polecenia do pojedynczego pliku o nazwie „{}” zamiast do serii pojedynczych plików.
Czy ktoś wie, jak to zrobić za pomocą xargs? Właśnie użyłem tego scenariusza grep jako przykładu, aby zilustrować mój problem z xargs, więc wszelkie rozwiązania, które nie używają xargs, nie są dla mnie odpowiednie.
xargs
bez-0
: dotyczy to tylko sytuacji, gdy potokujeszfind
wyjście zxargs
, prawda? kiedy zrobię,xargs -a <input_file>
jak mam tego użyć? Większość poleceń, takich jakgrep
wyjścia zi\n
nie,\0.
Jedynym sposobem, w jaki mogę to obejść, jesttr
ponowne użycie, aby to naprawić. Ale dlaczego ważne jest, aby używać go tylko z-0
?