我有很多文本文件,需要找到文件上下文中可能存在的某些单词,但只需要那些带引号的单词。
示例:只有在引号中才能在下面的文字中找到“搜索”一词(“搜索”一词可能会有所不同)。
1. text text text text text text search text
2. text "search text text text text" text
3. text "SEARCH text text text text" text
对于这个精确的例子,我只期望第2行和第3行的话。
感谢任何可以帮助我的人。
答案 0 :(得分:2)
如果您可以保证只有一组报价,那么
/".*search.*"/i
应该这样做。但是如果可以有多对报价,那么你必须确保已经传递了偶数的报价,以免你错误地给出开头报价的收盘价:
/^[^"]*("[^"]*"[^"]*)*"[^"]*search[^"]*"/i
这是a demo。 (请注意,该演示仅包含\n
用于演示目的。)如果您在演示正则表达式中看到两个#
,请将其替换为括号(
{{1} } -it是RegexPal对URL中数据进行编码的方式的限制。
答案 1 :(得分:0)
我想要双引号之间的所有单词,我只想使用grep
:
grep -E -o '".*"' inputfile
我只想要第一个字:
sed -E 's/.+"([[:alpha:]]+) .*/\1/' inputfile