Переберите файлы * .gz и верните, где содержимое НЕ содержит строку - PullRequest
0 голосов
/ 31 марта 2020

Скажем, у меня есть папка с несколькими * .gz файлами

test.18.part0.json.gz  
test.19.part0.json.gz
test.20.part0.json.gz  
test.21.part0.json.gz

Я бы хотел перебирать каждый файл в командной строке (Linux) и возвращать имена файлов, которые НЕ содержат конкретная строка

У меня есть возможность искать в каждом файле строку

find . -name \*.gz -print0 | xargs -0 zgrep "STRING"

Но не настолько, чтобы возвращать имя файла, когда содержимое файла НЕ содержит указанного Строка

Как я мог go об этом, пожалуйста?

1 Ответ

2 голосов
/ 31 марта 2020

Добавьте флаг -v, чтобы инвертировать совпадение:

find . -name \*.gz -print0 | xargs -0 zgrep -v "STRING"
...