grepで正規表現を使用してパターンにマッチするファイル一覧を出力したい


grepでディレクトリ内のマッチするファイルの一覧取り出したいけど正規表現が上手く効かないです

[code]

    grep -rnE '<SoundBox [\s\S]*?label=\\""' frontend
    
    # マッチさせたい文字列
    <SoundBox name={'Hoge'} checked={Hoge} label=""  />
    <SoundBox label="" name={'Hoge'} checked={Hoge} onChange={Hoge} />
    <SoundBox
      label=""
      name={'Hoge'}
      checked={Hoge}
      onChange={Hoge}
    />
    
[/code]

詳しい方教えて頂けないでしょうか？  
改行のパターンにもマッチしたいのですが、こちらだと上手くいかないです。




`GNU grep` であれば `-P` オプション(`PCRE` engine)を使うと1, 2行目全てがマッチします。

[code]

    $ grep --version
    grep (GNU grep) 3.7
    
    $ grep -nE '<SoundBox [\s\S]*?label=""' frontend
    2:<SoundBox label="" name={'Hoge'} checked={Hoge} onChange={Hoge} />
    
    $ grep -nP '<SoundBox [\s\S]*?label=\"\"' frontend
    1:<SoundBox name={'Hoge'} checked={Hoge} label=""  />
    2:<SoundBox label="" name={'Hoge'} checked={Hoge} onChange={Hoge} />
    
[/code]

ちなみに、`(\s|\S)*?` では両方にマッチします。

[code]

    $ grep -nE '<SoundBox (\S|\s)*?label=""' frontend
    1:<SoundBox name={'Hoge'} checked={Hoge} label=""  />
    2:<SoundBox label="" name={'Hoge'} checked={Hoge} onChange={Hoge} />
    
[/code]



[code]

    grep -rnE '<SoundBox\s.*?label=""'
    
[/code]

でいかがでしょうか？

