web-dev-qa-db-ja.com

Linuxでファイルから複数行をgrepする方法

以下の内容のファイルがあります。

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

ドットは、ファイル内の他の行を示します。ここで私が必要としているのは、helloとworldの行だけです。つまり、出力は次のようになります。

hello
world
hello
world

これを達成する方法は?

ありがとう、

2
Uvais Ibrahim

grepの使用:

grep -E 'hello|world' file

awkの使用:

awk '/hello|world/' file
5
Fazlin

grep-xオプションとともに使用して行全体を照合し、(拡張)正規表現演算子|を使用して、パターン間で論理OR :

grep -xE 'hello|world' file.txt

grep-Eオプションをサポートしていない場合は、エスケープされた|で基本正規表現を使用してください。

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

さらに、-xオプションを使用して行全体を照合できない場合は、正規表現演算子を使用してください。

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