Как исключить слово с помощью grep
Инструмент командной строки grep чрезвычайно полезен для поиска в текстовых данных строк и фрагментов, которые соответствуют определенной строке, символу, слову или регулярному выражению. Хотя в большинстве случаев grep используется для сортировки данных на предмет совпадений синтаксиса, что, если вы хотите исключить слово или строку с помощью grep вместо? Исключение совпадений строк с помощью grep не менее полезно, чем поиск и печать совпадений в grep, поэтому давайте рассмотрим, как исключить совпадения строк и исключить слова с помощью grep.
Очевидно, вам понадобится опыт работы с командной строкой и знакомство с grep, чтобы это оказалось полезным. Если вы хотите продолжить, вы можете открыть приложение «Терминал» и попробовать его самостоятельно. Поскольку grep не зависит от ОС, вы можете использовать трюк исключения в Mac OS, Linux, unix или в любом другом месте, где используется grep.
Как исключить отдельное слово с помощью grep
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Самый простой способ исключить строки со строкой или совпадением синтаксиса – использовать grep и флаг -v.
Например, предположим, что мы используем cat для печати файла в командной строке, но мы хотим исключить все строки, содержащие термин «ThisWord», тогда синтаксис будет выглядеть следующим образом:
cat example.txt | grep -v "ThisWord"
Результатом будет текстовый файл example.txt, но исключая любую строку, которая содержит строку, совпадающую с «ThisWord».
Вы также можете использовать grep непосредственно для файлов и исключить совпадения строк на основе слов или синтаксиса, например:
grep -v "ThisWord" example.txt
Используйте то, что лучше всего подходит для вашего конкретного рабочего процесса.
Как исключить несколько строк или слов с помощью grep
Теперь, когда вы знаете, как исключить совпадения для одного слова, следующий очевидный вопрос касается исключения нескольких слов с помощью grep. Это так же просто, и есть несколько способов сделать это, используя флаг -v, а также флаг -e.
Сначала давайте возьмем приведенный выше пример использования cat в файле, переданном в grep, и исключим любые строки, соответствующие двум словам; «Word1» и «Word2» это будет выглядеть следующим образом:
cat example.txt | grep -v -e "Word1" -e "Word2"
Любые строки, содержащие «Word1» или «Word2», будут исключены из распечатанных результатов.
Вы также можете использовать grep непосредственно для файлов, как и раньше:
grep -v -e "Word1" -e "Word2" example.txt
Другой подход – отделить то, что нужно исключить, с помощью grep, используя канал для разделения каждого совпадения, например:
grep -Ev "word1|word2" example.txt
Если вы протестируете любую из этих опций на примере текстового файла, вы обнаружите, что вывод идентичен независимо от выбранного вами подхода, каждая из которых исключает строки, содержащие целевые фразы, синтаксис, слова или текстовое соответствие.
Отлично, покажите мне полезный пример исключения данных с помощью grep!
В качестве практического примера, который могут оказаться полезными опытные пользователи Mac, мы можем использовать исключение grep при печати и запросе истории командной строки, чтобы найти ранее выполненные команды, чтобы найти совпадения по умолчанию, но исключив некоторые выбранные строки по умолчанию из вывода.
В приведенном здесь примере мы напечатаем историю команд для совпадений строк по умолчанию, но исключим все совпадения, имеющие отношение к iTunes, как определено в com.apple.itunes:
history |grep "defaults write" |grep -v -e "com.apple.itunes"
Так что, если вы следовали, это будет сообщать обо всех исторических выполнениях команды «defaults write», за исключением всего, что относится к приложению iTunes. Красиво, да?
Если у вас есть какие-то особенно удобные способы исключения совпадений с помощью grep, поделитесь ими с нами в комментариях ниже! И если вам понравилась эта статья, вы почти наверняка захотите просмотреть наши многочисленные статьи о командной строке здесь, где есть еще много чего узнать!
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)