所以我有一堆看起来像这样的数据:
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...
该列表存储在一个名为 NPs 的文件中。我这样做的代码是:
cat NPs | grep -E '\b(\w*[#][1-9]).' >> test
但是,当我打开测试时,它与输入文件完全相同。关于我缺少什么的任何输入?它似乎不应该是一个艰难的操作,所以也许我错过了一些关于语法的东西?我正在使用 bash 中调用的 shell 脚本中的这个命令。
提前致谢!