• ベストアンサー

egrep パタン検索

egrep パタン検索でちょっと悩んでいます。 aaa 文字列から、改行コード数行含めて zzz 文字まで数行出力したいという場合の正規表現なのですが、 分かるでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>sed -n '/ 2007$/,/^zzz/p' file1 >でどの行まで出力されるでしょう?? / 2007$/ にマッチした行から、その次の /^zzz/ にマッチする行までです。この例だとzzz-1234までですね。 >sed -n '/ 2007$/,/^zzz/,/^zzz/p' file1 これは文法的に誤りです。2回目の /^zzz/ まで表示したいと言うことでしょうか?それならawkで回数を数えるのが楽ですね。 >机上デバックしかできない環境です。 携帯からですか?パソコンもお持ちで無い?

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

改行にマッチする正規表現はありません。例えば . は任意の1文字にマッチしますが、改行にはマッチしません。 >aaa 文字列から、改行コード数行含めてzzz 文字まで数行出力 ということだとgrep/egrepでは無理です。sed/awk/perl等を使う必要があります。 aaa が含まれる行から zzz が含まれる行まで出力なら、 sed -n /aaa/,/zzz/p です。

iiiQA
質問者

補足

ご回答ありがとうございます。 cat file1 abcdeadafegad 2007 zzz-1234 vvvvvvvvvvvv zzz-9876 bbbbbbbbbbbbb zzz-5287 nnnnnnnnnnnnnnnn という行があるとした場合、 sed -n '/ 2007$/,/^zzz/p' file1 でどの行まで出力されるでしょう?? sed -n '/ 2007$/,/^zzz/,/^zzz/p' file1 でしょうか?? 机上デバックしかできない環境です。 よろしくお願い致します。