微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用grep从停用词文件中过滤出单词

我想使用grep和stopword-file来从另一个文件中过滤出常见的英文单词。 文件“somefile”每行包含一个字。

cat somefile | grep -v -f stopwords

这种方法的问题是:它检查停用词中的单词是否出现在某个文件中,但我想要相反的,即检查停用词中是否出现某个文件中的单词。

这个怎么做?

如何使用bash将一行文本添加文件的中间?

只打印匹配的单词和下一个单词

希望得到唯一匹配的grep

如何用grep修剪特定的文本

如何索引文本文件以提高grep时间

somefile包含以下内容

hello o orange

停用词包含以下内容

o

我想只从somefile中过滤掉单词“o”,而不是“hello”和“orange”。

grep输出在bash脚本中只打印单行

如何将两个search词与“grep”(AND)

比赛结束后grep

如何从文件中find单词到另一个文件? Linux的

如何在Linux的特定时间戳范围内logging日志文件内容

我想了一下,找到了一个解决方案…

使用grep的-w开关来匹配整个单词:

grep -v -w -f stopwords somefile

假设你有文件/ tmp / words:

in the

你可以通过它创建sed程序:

sed 's|^|s/\<|; s|$|\>/[CENSORED]/g;|' /tmp/words > /tmp/words.sed

这样你会得到/tmp/words.sed:

s/<in>/[CENSORED]/g; s/<the>/[CENSORED]/g;

然后用它来审查任何文本文件

sed -e -f /tmp/words.sed /input/file/to/filter.txt > /censored/output.txt

-e需要sed来理解识别所需的扩展正则表达式。 当然,如果你愿意的话,你可以把[censored]改成任何其他的字符串或空字符串。

这个解决方案将处理许多单词以及每行文件一个字。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐