• ベストアンサー

grepのパターン指定

grepコマンドで、{から次の}までをパターンとして指定する方法はありますか 例 {a:b},{b:c} とあった時、 {a:b},{b:c} となるのではなく、 {a:b} と {b:c} となるようにしたいんです。

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

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>やりたいのは、質問の例でいう1つ目の{から1つ目に出てくる}までを指定したいんです。 そのような正規表現になってるはずですけど? {[^}]*} を分解すると { 最初の { [^}]* }以外の文字が0回以上繰り返し } {の後の最初に見つかった } grep は正規表現に一致した行を出力しますから {a:b},{b:c} と出力されるでしょうが正規表現に一致しているのは {a:b} と {b:c} です

soratobupengin
質問者

お礼

なるほど。ソウイウことだったんですね。grepの仕様もわからない未熟者でしたので、助かりました。本当にありがとうございました。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

{[^}]*} {}がメタ文字として扱われる場合は \{[^}]*\} になるかと。

soratobupengin
質問者

補足

説明が足りなかったかもしれません。 やりたいのは、質問の例でいう1つ目の{から1つ目に出てくる}までを指定したいんです。今の自分の技術では1つ目の{から最後の}までが抜き出されてしまうんです。

関連するQ&A