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

find . -name '*docx' -exec sh -c "unzip -p {} word/document.xml | sed -e 's/]\{1,\}>//g; s/[^[:print:]]\{1,\}//g' | grep -i SearchTerm -q && echo {} " \;


Команда «find» используется для поиска файлов и каталогов в файловой системе.
Опция «-name ‘*docx'» указывает на то, что нужно найти файлы, имя которых оканчивается на «.docx».
Опция «-exec» позволяет выполнить команду для каждого найденного файла.
В данном случае, для каждого найденного файла будет выполнена команда «sh -c «unzip -p {} word/document.xml | sed -e ‘s/]\{1,\}>//g; s/[^[:print:]]\{1,\}//g’ | grep -i searchterm -q && echo {} » \»», где {} является плейсхолдером для имени найденного файла.
Данная команда выполняет следующие действия:
— Использует команду «unzip -p {} word/document.xml» для извлечения содержимого файла .docx;
— Последующий поток текста передается в команду «sed» для удаления тегов HTML и непечатаемых символов;
— Результат передается в команду «grep -i searchterm -q» для поиска строки «searchterm» без учета регистра в извлеченном тексте;
— Если найденное слово существует, команда «echo {}» выведет имя файла.
Таким образом, команда позволяет найти и вывести названия всех файлов .docx, содержащих искомое слово.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *