linux +删除文件中出现在另一个文件中的单词

linux +删除文件中出现在另一个文件中的单词

我有两个文件:在linux redhat版本6中

列表1.txt - 该文件包含 34732 个单词

列表2.txt - 该文件包含 272 个单词

我想从 list1.txt 中删除所有与 list2.txt 中的单词

执行此操作的最佳方法是什么(两个文件仅包含一个字段)

more list1.txt

dweferf
fr
grgr
gefyh
fergtrg
ggtgg
fergth
gtg
.
.
.

more list2.txt

dweferf
fr
frgrgggb
rggtgtrgrt
fergtrg
rfergrtg
fwed4

.
.
.

答案1

你也可以做这样的事情

#!/bin/bash
FILE1=$1 # path to your list2.txt
FILE2=$2 # path to your list1.txt
touch ./tmpfile
FILE3=./tmpfile
while read p; do
  if [ `grep "\<$p\>" $FILE2 | wc -l` -ne 0 ] 
  then
    echo "$p word found discarding"
  else
    echo -e "$p" >> $FILE3
  fi
done <$FILE1
mv $FILE3 $FILE2

相关内容