Заставьте grep работать на специальные имена файлов

Вы обратились к неправильной странице руководства, это не type -f команда, но find -type f опция, которая очень отличается, взглянула к find руководство для надлежащих объяснений.

3
08.05.2014, 11:00
3 ответа

IF[115027] вы готовы пойти дальше, awk может сделать это за один проход:

Для recentish gawk вы можете упростить с BEGINFILE и ENDFILE. (Как и все ответы awk, вы можете поместить команды awk в файл с помощью -f, и, как и большинство других, вы можете легко конвертировать в perl, если хотите.)[114500]

2
27.01.2020, 21:23
[114439]Так как вы уже используете специфические для GNU опции ([114932]-L[114933]), вы можете это сделать:

Идея заключается в том, чтобы использовать [114934]-Z[114935] для распечатки списка имен файлов, разделенных NUL, и использовать [114936]xargs -r0[114937] для передачи этого списка в качестве аргументов во вторую [114938]grep[114939].

Подстановка команд, по умолчанию, разбивается на пробел, закладку и новую строку (и NUL в [114940]zsh[114941]). Борнеподобные оболочки, кроме [114942]zsh[114943], также выполняют глобус для каждого слова в результате этого разделения.

Можно сделать:

Но это все равно сломается на именах файлов, содержащих символы новой строки.

Только в [114944]zsh[114945] (и [114946]zsh[114947]) можно сделать:

Или:

2
27.01.2020, 21:23
[114437]Рассмотрим вариант использования [114928]find[114929] вместо этого и [114930]grep[114931] с помощью команды оболочки:

-1
27.01.2020, 21:23

Теги

Похожие вопросы