我有一个 2GB 的文本文件。我正在尝试从此文件中删除频繁出现的英语停用词。
我有 stopwords.txt 包含这样的..
a
an
the
for
and
I
使用 tr、sed 或 awk 等 shell 命令执行此操作的快速方法是什么?
最佳答案
这是使用命令行和 perl
的方法:
将下面的文本保存为 replacesw.sh
:
#! /bin/bash
MYREGEX=\\b\(`perl -pe 's/\n/|/g' $1`\)\\b
perl -pe "s/$MYREGEX//g" $2
然后,如果您将上面的文件保存为
stopwords.txt
,并且有一个名为 testtext.txt
的第二个文件(例如),其中包含:This is a file with the stopwords from the stopwords.txt for testing.
More than one line in the file, for a better test.
然后命令行中的以下内容将删除
stopwords
:KBs-MBP13:temp kbenoit$ ./replacesw.sh stopwords.txt testtext.txt
This is file with stopwords from stopwords.txt testing.
More than one line in file, better test.
您可能需要先
chmod u+x replacesw.sh
。关于shell - 快速 shell 命令删除文本文件中的停用词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30574124/