2

我有很多文本文件,需要找到文件上下文中可能存在的某些单词,但只需要引号中的单词。

示例:仅在引号中的“搜索”一词下方的文本中查找(“搜索”一词可能会有所不同)。

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 行的单词。

感谢任何可以帮助我的人。

4

2 回答 2

3

如果你能保证只有一组报价,那么

/".*search.*"/i

应该做。但是如果可以有不止一对引号,那么您必须确保已传递偶数个引号,以免您将结束引号误认为开始引号:

/^[^"]*("[^"]*"[^"]*)*"[^"]*search[^"]*"/i

Here's a demo. (Note that the demo contains \ns purely for presentation purposes.) If you see two #s in the demo regex, please replace them with parentheses ( )—it is a limitation of the way RegexPal encodes its data in the URL.

于 2012-09-06T20:18:36.980 回答
0

我想要双引号之间的所有单词,我会简单地使用grep

 grep -E -o '".*"' inputfile

如果你只想要第一个词:

sed  -E 's/.+"([[:alpha:]]+) .*/\1/' inputfile
于 2012-09-06T20:05:14.063 回答