如何在 Linux 中从文件中 grep 多行

如何在 Linux 中从文件中 grep 多行

我有一个包含以下内容的文件。

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

点表示文件中的其他行。这里我只需要 gerp hello 和 world 行。这意味着输出应该如下所示。

hello
world
hello
world

如何实现这个?

谢谢,

答案1

使用grep

grep -E 'hello|world' file

使用awk

awk '/hello|world/' file

答案2

您可以使用grep选项-x匹配整行和(扩展)正则表达式运算|符在模式之间执行逻辑或:

grep -xE 'hello|world' file.txt

如果你grep不支持该-E选项,请使用带有转义的 Basic Regex |

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

此外,如果您不能使用该-x选项匹配整行,请使用正则表达式运算符:

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

相关内容