• 締切済み

grepの出力について

パターンマッチについてなんですが、このコマンドはマッチした行を出力するコマンドなんですが。実際にはパターンマッチをした文字列だけを表示したいという場合にはどのようにしたらよいのでしょうか?スクリプトを書くしかないのでしょうか?できればその例を教えてください。お願いします。

みんなの回答

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.2

例を、ということなので。 Perl で、パターンマッチに ( ) を使い、$1 でそれを出力するようにすれば、マッチした文字列だけを表示させることはできます。 例えば、以下のようなスクリプトはどうでしょうか。 ―――――――――― #!/usr/local/bin/perl # Usage: grep2 pattern filename $pattern = $ARGV[0]; $filename = $ARGV[1]; open(IN, $filename) or die("$filename: $!\n"); while (<IN>) {   next unless /($pattern)/;   print "$1\n"; } close(IN); exit(0); ―――――――――― これで、grep2 pattern filename とやれば、pattern にマッチする文字列だけがダーッと出てきます。 パターンには、正規表現も使えます。(シェルで解釈されないよう、' ' で囲む必要があります。) でも、こんなことして、何か意味があるのでしょうか…? 行数でも一緒に表示させるようにすれば、使い道が出てくるのかな?

すると、全ての回答が全文表示されます。
  • alicia-y
  • ベストアンサー率40% (85/208)
回答No.1

grep では出来ないですね。 perl を使いましょう。マッチした文字列を抽出することが出来ます。

すると、全ての回答が全文表示されます。

関連するQ&A