3

У меня есть файл с содержанием ниже.

.
.
hello
.
.
.
world
.
.
hello
.
.
.
.
.
world
.
.

точки указывают на другие строки в файле. Вот что мне нужно, чтобы зачерпнуть только строки привет и мир. Это означает, что вывод должен выглядеть примерно так.

hello
world
hello
world

Как это сделать?

Спасибо,

2 ответа2

5

Используя grep:

grep -E 'hello|world' file

Использование awk:

awk '/hello|world/' file
1

Вы можете использовать grep с опцией -x для сопоставления всей строки и (расширенного) оператора Regex, | , чтобы выполнить логическое ИЛИ между шаблонами:

grep -xE 'hello|world' file.txt

Если ваш grep не поддерживает опцию -E , используйте Basic Regex с escape-символом |:

grep -x 'hello\|world' file.txt

Кроме того, если вы не можете использовать опцию -x для сопоставления всей строки, используйте операторы Regex:

grep -E '^(hello|world)$' file.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .