0

次のように3つのアイテムがリストされているjsonファイルがあります。

{
Item 1
lots of stuff
more stuff 1545
even more
},
{
Item 2
lots of stuff
more stuff 542
},
{
Item 2
lots of stuff
more stuff 675
even more
more words
more text
}

675 などの文字列を grep できるようにしたいのですが、それが見つかった場合は、開始ブラケットから終了ブラケットまで、テキストの「ブロック」全体を返します。

4

3 に答える 3

3

「文字列の grep」が、通常の grep のように正規表現を検索することを意味する場合は、次のようになります。

awk -v t="675" -v ORS= '{r=r $0 RS} /^}/{if (r~t) print r; r=""}' file

ただし、本当に fgrep のように文字列を検索する場合は、次のようにします。

awk -v t="675" -v ORS= '{r=r $0 RS} /^}/{if (index(r,t)) print r; r=""}' file
于 2013-06-19T18:17:05.877 に答える