Найти -exec awk перенаправить в файл - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующий скрипт:

После нахождения файлов с определенными расширениями он проверяет указанные файлы на предмет наличия у них определенного слова или нет.

find . -type d \( -name ThirdParty -o -name 3rdParty -o -name 3rd_party \) -prune -o -type f \( -name "*.java" -o -name "*.cs" -o -name "*.cpp" -o -name "*.cxx" -o -name "*.cc" -o -name "*.c" -o -name "*.h" -o -name "*.scala" -o -name "*.css" -o -name "*.js" \) -exec awk '/FOO/{f=1;exit} END{if (!f) printf "%s\0", FILENAME}' {} \; 

Я хочу вывести имена всех файлов с этим словом в простой текстовый файл.Я попытался сделать

find . -type d \( -name ThirdParty -o -name 3rdParty -o -name 3rd_party \) -prune -o -type f \( -name "*.java" -o -name "*.cs" -o -name "*.cpp" -o -name "*.cxx" -o -name "*.cc" -o -name "*.c" -o -name "*.h" -o -name "*.scala" -o -name "*.css" -o -name "*.js" \) -exec awk '/FOO/{f=1;exit} END{if (!f) printf "%s\0", FILENAME}' {} \; > output.txt

Тем не менее, мой выходной файл пуст.Спасибо.

1 Ответ

0 голосов
/ 23 января 2019

возможно с xargs:

find . -type d \( -name ThirdParty -o -name 3rdParty -o -name 3rd_party \) \
-prune -o -type f \( -name "*.java" -o -name "*.cs" -o -name "*.cpp" -o -name "*.cxx" \
-o -name "*.cc" -o -name "*.c" -o -name "*.h" -o -name "*.scala" -o -name "*.css" \
-o -name "*.js" \) | xargs grep -L word > list_of_files_missing_word.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...