두 개의 파일이 있습니다. 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