Grep для возврата всего содержания файла

Я хочу искать рекурсивно определенное слово, сказать MyWord, но я хочу распечатать все содержание всех файлов, которые содержат MyWord. Как я делаю это?

Оказывается, что я особенно забочусь о двоичном файле sqlite о файлах, и захват их и чтение результата как текстовый файл, а не двоичный файл.

1
задан 18 April 2018 в 04:05

3 ответа

Если ваша папка не такая большая, попробуйте:

grep -rz '.*MyWord.*'  myfolder > output

при необходимости добавьте -a

0
ответ дан 7 December 2019 в 13:25

Я использовал бы:

sudo grep -rIlZ --exclude=${HISTFILE##*/} --exclude-dir={boot,dev,lib,media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e 'MyWord' | xargs -0 cat > MyOutputFile
  • Отбрасывание sudo не смотря в системных каталогах.
  • Изменитесь (корневой каталог) '/' к текущему каталогу '.' или определенный каталог т.е. '/home/me/stuff'
  • Удалить mnt включать файлы Windows, смонтированные под mnt.
  • Удалить lib включать исходные файлы Linux
  • Исключая каталоги, необходимые для скорости. См.: 'grep'ing все файлы для строки занимает много времени
  • --exclude=${HISTFILE##*/} необходимо, если Вы выполняете команду во второй раз или если строка поиска MyWord когда-либо использовался в другой команде прежде. Это предотвращает 5 тысяч строк истории ($HISTFILE) от того, чтобы быть включенным.
  • -r рекурсивный, I пропустите двоичные файлы, lZ производит нулевой байт после каждого имени файла вместо обычной новой строки. Пустой указатель (обнуляют байт), разделители, необходимые для perl -0, sort -z и xargs привыкший к cat (распечатайте) содержание файла.
  • > MyOutputFile отправляет вывод в файл вместо экрана. Оставьте это для выведенного на экран.

Примечание: Отсутствие от вывода является именем файла, просто содержание файла перечислено.

1
ответ дан 7 December 2019 в 13:25

Можно также использовать find с grep:

find . -type f -exec grep -wq 'MyWord' {} \; -exec cat {} >> /path/to/outfile \;

Это найдет файлы, содержащие слово "MyWord" рекурсивно и вполне как только первое соответствие, найденное затем, перенаправляет целое содержание файла в новый файл.

1
ответ дан 7 December 2019 в 13:25

Другие вопросы по тегам:

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