如何使用 grep 打印与模式匹配的字符串?

如何使用 grep 打印与模式匹配的字符串?

我想获取与以下模式匹配的字符串列表:

CLASS_NAME:"*"

其中*代表任意数量的字符。

我试过:

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

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

第一种情况返回匹配字符串之后的整行,而第二种情况则在第一种情况下终止"。我怎样才能让它只返回匹配的字符串?

答案1

好吧,所以我猜你的问题是每行的多个引号比你想要的要多,因为正则表达式本质上是贪婪的 - 如果可以的话,它总是会尽可能匹配。

因此,解决方案是确保仅在两个双引号之间进行匹配,例如:

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

相关内容