Полезный пример поиска в UNIX, чтобы найти файлы, содержащие 2 и более разных подстрок. Например, мне нужно было найти все файлы конфигурации, в которых одновременно есть значение «field_spacing» и «excluded: false».
Grep такой функции поиска не имеет, разве что вы напишите сложное регулярное выражение, которое учитывает ваши требования. Потому мы воспользуемся piping в UNIX и составим следующую команду:
|
|
grep -rlZ 'field_spacing' \ | xargs -0 grep -l 'excluded: false' |
Используя xargs вы можете наращивать цепочку далее и получить более сложные условия выборки.
|
|
grep -rlZ 'str1' \ | xargs -0 grep -l 'str2' | xargs -0 grep -l 'str3' |
Дополнительно можно ограничить поиск по определенным файлам, ключ —include:
|
|
grep -rlZ 'field_spacing' --include=field* \ | xargs -0 grep -l 'excluded: false' |
Добавим сортировку, чтобы удобно было работать со списком файлов:
|
|
grep -rlZ 'field_spacing' --include=field* \ | xargs -0 grep -l 'excluded: false' \ | sort |
UNIX
Данная запись опубликована в 06.10.2023 15:00 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июль 24, 2017 г.
Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets' encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера.
...
Читать
Сентябрь 12, 2018 г.
Как произвести в bash/sh простейшие вычисления? Давайте рассмотрим несколько примеров.
Операции с целыми числами
Пока вас интересуют целочисленные вычисления, вы можете пользоваться командами встроенными в bash.
Вот 6 арифметических команд, которые ...
Читать
Декабрь 3, 2019 г.
Задача возникла в контексте SEO, требовалось предотвратить индексацию тестовых сайтов поисковыми системами. На практике видно, что инструкции файла robots.txt ...
Читать
Март 17, 2022 г.
Команда su позволяет выполнить любую операцию от имени существующего пользователя.
К примеру от имени пользователя nginx:
[crayon-69d870db22089504127069/]
Должно вывести nginx, но скорее всего ничего не получится и вы увидите сообщение
...
Читать