【发布时间】:2017-01-20 22:01:28
【问题描述】:
我正在尝试使用grep 和sed 删除我的数据上的变量标签。
我拥有的数据如下所示:
Please_VB make_VB it_PRP in_IN a_DT range_NN of_IN colored_JJ and_CC precise_JJR Skin_NN tone_NN shades_VBZ
我的目标是只提取标签为_NNS、_NNP、_NN、_JJ 和_JJR 的单词。对于期望的结果:
range
colored
precise
skin
tone
我现在使用的grep 和sed 如下:
grep -oh "\w*_\(JJ\|NN\)\w*" test_file.txt | sed 's/[_JJ\|_NN\|_JJR\|_NNP\|_NNS]//g'
然而,该命令行的结果是:
range
colored
precise
kin
tone
它使用grep 正确提取了正确的单词,但sed 正在删除所有对应的字母,而不仅仅是_NX 或_JX 的确切标签。
有什么方法可以使sed 更精确地只删除指定的确切标签而不是标签内的任何字母?
【问题讨论】: