Мне нужен способ запустить grep для списка файлов, которые могут содержать пробелы в имени файла. В списке файлов без пробелов это довольно просто и легко. Также я знаю, как обращаться с пробелами в именах файлов для find и xargs. Я просто ищу способ использовать grep
с командой -print0.
Я ищу текст внутри файла, а не в имени файла ...
Это перечисляет все файлы:
find * -print 0 | xargs -0 -i{} echo {}
но скажите, что я должен сделать grep (или другую команду) между ними.
Это список файлов, которые содержат "Howdy Doody" внутри файла:
find * | xargs grep -l "howdy doody" | xargs -i{} echo {}
Это не работает, grep
не знает, как распознать нулевые завершенные строки. Я что-то пропустил на странице grep
?
find * -print0 | xargs grep -l "howdy doody" | xargs -0 -i{} echo {}