2

これが私のファイルです。

    this is temp1
    this is temp2
    this is temp3

パターン「temp」を探しているときに、結果が文全体ではなく「temp1、temp2、temp3」としてのみ表示されるようにするgrepコマンドの使用方法。

ありがとう

4

3 に答える 3

11

-o オプションを使用できます

$ grep -o "temp[0-9]"
于 2013-07-10T07:29:47.473 に答える
2

grepと組み合わせて使用​​することをお勧めしますsed。sed は perl スタイルの正規表現を使用し、より多くのパターン マッチング機能を提供します (まあ、私の意見では)。これにより、必要なものが正確に取得されます。

grep temp yourFileName | sed -e "s/.*(temp[0-9]*).*/\1/"

しかし、temp[number] だけでなく、"temp" と一致させてから、空白に到達するまで一致を続けることができます。これはトリックを行います:

grep temp yourFileName | sed -e "s/.*(temp[^ ]*).*/\1/"

これがコマンド ライン上にある場合は、角かっこもエスケープする必要がある場合があります。

grep temp yourFileName | sed -e "s/.*\(temp[^ ]*\).*/\1/"
于 2013-07-10T07:46:28.063 に答える