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.
xargsbez-0: dotyczy to tylko sytuacji, gdy potokujeszfindwyjście zxargs, prawda? kiedy zrobię,xargs -a <input_file>jak mam tego użyć? Większość poleceń, takich jakgrepwyjścia zi\nnie,\0.Jedynym sposobem, w jaki mogę to obejść, jesttrponowne użycie, aby to naprawić. Ale dlaczego ważne jest, aby używać go tylko z-0?