題 如何從linux中的文件中grep多行


我有一個包含以下內容的文件。

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

圓點表示文件中的其他行。在這裡我只需要gerp線你好和世界。這意味著輸出應該如下所示。

hello
world
hello
world

怎麼做到這一點?

謝謝,


3
2017-07-15 10:41


起源




答案:


運用 grep

grep -E 'hello|world' file

運用 awk

awk '/hello|world/' file

5
2017-07-15 10:47





您可以使用 grep 隨著 -x 選項匹配整行和(擴展)正則表達式運算符, |,在模式之間執行邏輯OR:

grep -xE 'hello|world' file.txt

如果你的 grep 不支持 -E 選項,使用帶有轉義的Basic Regex |

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

另外,如果你不能使用 -x 選項匹配整行,使用正則表達式運算符:

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

1
2017-07-15 12:47