• ベストアンサー

grepにマッチした正規表現の文字列を取得したい

grepにマッチした正規表現の文字列を取得し、マッチした文字列を 一覧で取得したいのですが、方法がわかりません。 ※例 grep [0-9][0-9][0-9][0-9][0-9] 検索ファイル名 > 出力ファイル名 不明点あればお知らせください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

UnixやLinuxなら、まずは man grep してみること。 GNU版のgrepなら --help オプションでもかなり詳細な説明が見れます。 GNU grepのマニュアルより > -o, --only-matching > Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line. GNU grepのヘルプより > -o, --only-matching 行の中で PATTERN に一致した部分のみ表示する こういうことですか? ただ、この方法はその行で最初に見付かったものだけ出力されるので、1行に複数マッチする場合には使えませんが。 POSIXのgrepには-oは無いようなので、sedかなんかで抜き出すことになります

mameo0922
質問者

お礼

-o オプションなんてものがあったんですね。 やっぱりぐぐってばかりではなく、マニュアル見るべきですね。。 想定通りの結果を得ることができました。 ご回答ありがとうございました。

その他の回答 (1)

回答No.2

例の通りだと、マッチした行全体が出力されてしまうのが不満 ということでしょうか。であれば grep -o [0-9][0-9][0-9][0-9][0-9] 検索ファイル名 > 出力ファイル名 でどうでしょう? 上記でダメなら補足してもらわないと、見当がつかないです。 一応、以下が当方の環境です。 cygwin 1.7.9-1 grep 2.6.3

mameo0922
質問者

お礼

お察しの通りでございます。 ご回答ありがとうございました。