我有一个文本文件,其中标记了某些单词/短语
[-sample text-]
或
{+sample text+}
如何使用grep提取文本中括号内的单词?
答案 0 :(得分:0)
您正在描述似乎是字差异格式的内容。使用标准grep很难做到这一点,但使用更强大的正则表达式引擎(如PCRE)很容易做到。
将PCRE(Perl-Compatible Regular Expression)库编译到grep或pcregrep二进制文件中,可以在模式中使用某些类型的零宽度断言。例如,假设您具有以下文件内容:
foo [-sample text 1-] bar {+sample text 2+} baz
您可以通过以下方式获得正确的结果:
$ pcregrep -o '(?<={\+|\[-).*?(?=\+}|-\])' /tmp/foo
sample text 1
sample text 2