我有一个 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/

10-12 17:56