请教个shell语言的问题
我有两个文件,1.txt和2.txt。1.txt中每一行的某个域可能在2.txt中某一行出现,并独占2.txt的一行。我想在1.txt中查找所有该域在2.txt中出现的行,如果该域在2.txt中找到,则删除1.txt中的这一整行。
比如1.txt每一行用“,”来分割,其中第一个域在2.txt有对应,我的程序如下:
#!/bin/sh
INFILE=./1txt
OUTFILE=./out.1.txt
INFOFILE=./2.txt
cat $INFILE | while read line
do
#echo $line
pid=`echo $line | awk -F, '{print $1}'`
if [ "`grep $pid $INFOFILE`" == "" ];then
echo $line >> $OUTFILE
fi
done
这样做很慢,估计得好几小时才能完成,谁有有更快的方法吗?
[解决办法]