首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问个shell语言的有关问题

2012-12-31 
请教个shell语言的问题我有两个文件,1.txt和2.txt。1.txt中每一行的某个域可能在2.txt中某一行出现,并独占2

请教个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

这样做很慢,估计得好几小时才能完成,谁有有更快的方法吗?
[解决办法]

引用:
我查了下这个命令,似乎需要两个文件是有序的啊。

引用:

用命令 join 吧

呵呵,确实需要 key 列是排序的。
不如用 perl 写一个吧。

http://topic.csdn.net/u/20120620/20/517a50b9-9d3c-4388-b5d8-016c2169ed1a.html

热点排行