Я пытаюсь найти во многих XML-файлах определенные строки, но не другие строки, и у меня возникают проблемы при составлении команды для этого. Я только хочу перечислить имена файлов, которые соответствуют критериям включения / исключения. Я пытался:
find . -name *.xml -exec grep -li "string1\|string2" {} \; | xargs grep -Li "string3\|string4"
Но у меня возникли проблемы, потому что имена файлов, которые возвращаются из find, имеют пробелы в именах, а второй grep разбивает их на маленькие кусочки и, конечно, не находит такие файлы. Я попытался добавить -0
к xargs, и он удаляет ошибки, но он говорит "Имя файла слишком длинное" и выполняет только первый grep.
Как настроить эту команду, чтобы она правильно работала с файлами с пробелами в именах?