Grep/AWK/Sed OR-AND-NOT - несколько Условий
awk
sed
grep
complex logical
Grep/AWK/Sed OR-AND-NOT - несколько Условий
Самыми распространенными утилитами для парсинга файлов в Linux являются команды grep, egrep, sed и awk.
Из данной статьи вы узнаете, как выполнить поиск строк в файле по нескольким условиям, которые задаются логическими операторами OR, AND, NOT с помощью grep, egrep, sed и awk из командной строки в Linux.
GREP OR: Любое Из Нескольких Условий
Поиск строк в файле, в которых содержится любое из перечисленных регулярных выражений.
Используя команду grep и egrep:
$ grep "ВЫРАЖЕНИЕ1\|ВЫРАЖЕНИЕ2" FILE
$ grep -E "ВЫРАЖЕНИЕ1|ВЫРАЖЕНИЕ2" FILE
$ grep -e ВЫРАЖЕНИЕ1 -e ВЫРАЖЕНИЕ2 FILE
$ egrep "ВЫРАЖЕНИЕ1|ВЫРАЖЕНИЕ2" FILE
Используя команду awk:
Используя команду sed:
GREP AND: Каждое Из Условий
Также, очень часто возникает необходимость grep-нуть файл по нескольким условиям — это когда нужно найти все строки в файле, которые соответствуют каждому из нескольких регулярных выражений.
Обратите внимание, что вы можете осуществить поиск строк в файле которые содержат регулярные выражения, как в определенном, так и в произвольном порядке.
Используйте одну из приведенных ниже команд, чтобы найти и напечатать все строки в файле, которые соответствуют нескольким условиям.
Используя команду grep в такой последовательности:
Используя команду grep в любой последовательности:
$ grep -E 'ВЫРАЖЕНИЕ1.*ВЫРАЖЕНИЕ2|ВЫРАЖЕНИЕ2.*ВЫРАЖЕНИЕ1' ФАЙЛ
$ grep 'ВЫРАЖЕНИЕ1' ФАЙЛ | grep 'ВЫРАЖЕНИЕ2'
Используя команду awk в такой последовательности:
$ awk ‘/ВЫРАЖЕНИЕ1.*ВЫРАЖЕНИЕ2/’ ФАЙЛ
Используя команду awk в любой последовательности:
Используя команду sed в такой последовательности:
Используя команду sed в любой последовательности:
GREP NOT: Исключение
Поиск и печать строк из файла, которые не содержат указанное регулярное выражение.
Используя команду grep:
Используя команду awk:
Используя команду sed: