首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在第二个文件中没有匹配的文件中删除行的最快方法是什么?

在第二个文件中没有匹配的文件中删除行的最快方法是什么?

提问于 2018-01-24 00:40:36
回答 2关注 0查看 186

我有两份文件wordlist.txt和text.txt。

第一个文件wordlist.txt,包含大量的汉语、日语和韩语单词,例如:

代码语言:javascript
复制
你
你们
我

第二个文件,包含很长的段落,例如:

代码语言:javascript
复制
你们要去哪里?
卡拉OK好不好?

我想创建一个新单词列表(),但是它应该只包含其中至少有一次在上述输出文件应显示如下:

代码语言:javascript
复制
你
你们

“我”未在此列表中找到,因为它从未在...

我想找到一种非常快速的方法来创建这个列表,它只包含第二个文件中的第一个文件中的行。

我知道一种简单的Bash方法来检查每一行看看它是否在使用:

代码语言:javascript
复制
a=1
while read line
do
    c=`grep -c $line text.txt`
    if [ "$c" -ge 1 ]
    then
    echo $line >> wordsfound.txt
    echo "Found" $a
fi
    echo "Not found" $a
    a=`expr $a + 1`
done < wordlist.txt

但这是一个很长的列表,这个过程需要很多小时。必须有更快的解决办法。这里有一个考虑:

由于这些文件中包含CJK字母,所以它们可以被认为是一个巨大的字母表,大约有8000个字母。所以几乎每个单词都有相同的字符。例如:

代码语言:javascript
复制
我
我们

由于这个事实,如果“我”在,“我们”也没有出现,这是非常合乎逻辑的。一个更快的脚本可能首先检查“我”,当发现它不存在时,将避免检查后续包含的每个单词。也包含在如果有大约8000个独特的字符出现在,那么脚本就不需要检查那么多行了。

创建列表的最快方法是什么,它只包含在第一个文件中的单词,而这些单词也在第二个文件中的某个地方找到?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档