带grep的正则表达式

莎士比亚

所以我有一堆看起来像这样的数据:

janitor#1/2 of dorm#1/1
president#4/1 of class#2/2
hunting#1/1 hat#1/2
side#1/2 of hotel#1/1
side#1/2 of hotel#1/1
king#1/2 of hotel#1/1
address#2/2 of girl#1/1
one#2/1 in family#2/2
dance#3/1 floor#1/2
movie#1/2 stars#5/1
movie#1/2 stars#5/1
insurance#1/1 office#1/2
side#1/1 of floor#1/2
middle#4/1 of December#1/2
movie#1/2 stars#5/1
one#2/1 of tables#2/2
people#1/2 at table#2/1

有些行有介词,有些则没有,所以我认为我可以使用正则表达式来清理它。我需要的是每个名词,#号和其后的数字。因此,例如,输出的第一行在最终文件中应如下所示:

janitor#1
dorm#1
president#4
etc...

该列表存储在一个名为NP的文件中。我要做的代码是:

cat NPs | grep -E '\b(\w*[#][1-9]).' >> test

但是,当我打开测试时,它与输入文件完全相同。关于我所缺少的任何信息吗?看来这不应该是一项艰巨的操作,所以也许我缺少语法方面的知识?我正在从bash中调用的shell脚本中使用此命令。

提前致谢!

恶魔

使用grep

$ grep -o "\w*[#]\w*" inputfile
janitor#1
dorm#1
president#4
class#2
hunting#1
hat#1
side#1
hotel#1
side#1
hotel#1
king#1
hotel#1
address#2
girl#1
one#2
family#2
dance#3
floor#1
movie#1
stars#5
movie#1
stars#5
insurance#1
office#1
side#1
floor#1
middle#4
ecember#1
movie#1
stars#5
one#2
tables#2
people#1
table#2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章