grepを使用してパターンに一致する文字列を印刷するには?

grepを使用してパターンに一致する文字列を印刷するには?

次のパターンに一致する文字列のリストを取得したいと思います。

CLASS_NAME:"*"

これは*任意の数の文字を表します。

私は試した:

grep -o CLASS_NAME:\".*\" script.js

そして

grep -o CLASS_NAME:\"*\" script.js

最初のケースは一致する文字列の後の行全体を返し、2番目のケースは最初のケースで終了します"。一致する文字列のみを返すにはどうすればよいですか?

ベストアンサー1

さて、問題は、正規表現が本質的に貪欲であるため、1行に必要なものよりも引用符が多いことです。可能であれば、常にできるだけ一致します。

したがって、解決策は、2つの二重引用符の間でのみ一致することを確認することです。

grep -o 'CLASS_NAME:"[^"]*"' script.js

おすすめ記事