Я хочу найти команду bash, которая позволит мне grep каждый файл в каталоге и записать вывод этого grep в отдельный файл. Мое предположение было бы сделать что-то вроде этого
ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out"
но насколько я знаю, xargs не нравятся двойные кавычки. Однако, если я удаляю двойные кавычки, команда перенаправляет вывод всей команды в один файл с именем «{}». Вместо ряда отдельных файлов.
Кто-нибудь знает способ сделать это с помощью xargs? Я просто использовал этот сценарий grep в качестве примера, чтобы проиллюстрировать мою проблему с xargs, поэтому любые решения, которые не используют xargs, не подходят для меня.
xargs
без-0
: это применимо только тогда, когда вы выводите данныеfind
с помощью каналаxargs
, верно? когда я делаю,xargs -a <input_file>
как бы я использовал это? Большинство команд, например, сgrep
выходами\n
и без них\0.
. Единственный способ обойти это, я думаю, использоватьtr
снова, чтобы исправить это. Но почему важно использовать его только с-0
?