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

관련 정보