我想使用grep和stopword-file来从另一个文件中过滤出常见的英文单词。 文件“somefile”每行包含一个字。
cat somefile | grep -v -f stopwords
这种方法的问题是:它检查停用词中的单词是否出现在某个文件中,但我想要相反的,即检查停用词中是否出现某个文件中的单词。
这个怎么做?
例
只打印匹配的单词和下一个单词
希望得到唯一匹配的grep
如何用grep修剪特定的文本
如何索引文本文件以提高grep时间
somefile包含以下内容:
hello o orange
停用词包含以下内容:
o
我想只从somefile中过滤掉单词“o”,而不是“hello”和“orange”。
grep输出在bash脚本中只打印单行
如何将两个search词与“grep”(AND)
比赛结束后grep
如何在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] 举报,一经查实,本站将立刻删除。