grepを使用して一致する単語の行を返すことはできますが、その単語だけを返す方法はありますか?一致する単語を取得する方法(ラインではない)
The original MC68000 was fabricated using
MC68000
を返す方法: があると言いますか?
grepを使用して一致する単語の行を返すことはできますが、その単語だけを返す方法はありますか?一致する単語を取得する方法(ラインではない)
The original MC68000 was fabricated using
MC68000
を返す方法: があると言いますか?
これはよくある質問です。 GNU grepには-o
があります(行全体ではなくonly
)。これは、「単一のUnix仕様」には記載されていません。
使用すると、sedの:
grep "myword" myfile | sed "s/.*\(myword\).*/\1/"
これはGNU拡張に依存しないので、最も標準に準拠した答えです。しかし、 'sed -n -e 's /.* \(myword \)。*/\ 1 /' -e '/ myword/pのように、sedのすべてでそれを行うことができるので、grepの無用な使い方です。 ''。 '-n'は各行をエコーするのを止めるので、' p'を使用してあなたが望むもの( "grep"の最後の文字)を印刷します。 – Kaz
私は、これは彼が求めていたものであるか分かりません。私は彼が3つのフィールドを返そうとしていることを理解しました。 – gdoron
明らかです。 'grep -E -o 'MC68 [0-9] +''は 'MC68000'にマッチし、それだけを表示します。 demaxSHが答えを受け入れたように見えます。 – Kaz