LinuxÒÁµéÔ°ÂÛ̳'s Archiver

loveangela ·¢±íÓÚ 2007-6-23 16:36

Çë½ÌÁ½¸öÎļþ´¦ÀíÁеÄÎÊÌâ

µÚÒ»¸öÎļþ1.txt
±àºÅÐÕÃû ÕʺŠ         ½ð¶î   ÖÖÀà ºÅÂë
001,ÕÅÈý,101000101,0.00,101,11111111111,
002,ÀîËÄ,101000102,0.00,101,22222222222,
µÚ¶þ¸öÎļþ2.txt
±àºÅÐÕÃû ½ð¶î
001,ÕÅÈý,100,
002,ÕÅÈý,200,
003,ÀîËÄ,300,
004,ÍõÎå,500,

ÒªµÃµ½µÄÊä³ö½á¹û3.txt
±àºÅ ÐÕÃû ÕʺŠ         ½ð¶î   ÖÖÀà ºÅÂë
001,ÕÅÈý,101000101,100,101,11111111111,
002,ÕÅÈý,               , 200,101,                  ,
003,ÀîËÄ,               ,300,101,                   ,
004,ÍõÎå,                 ,500,101,                  ,

¾ÍÊÇÈç¹ûµÚ¶þ¸öÎļþÖеıàºÅºÍÐÕÃû¶¼ºÍµÚÒ»¸öÎļþÒ»ÑùµÄ»°¾Í°ÑµÚ¶þ¸öµÄ½ð¶î¸²¸ÇµÚÒ»¸öÎļþÖеĽð¶î,
Èç¹ûûÓиñʽ¾ÍÈç:002,ÕÅÈý,        ,200,101,       ,
¶Ô²»Æð,ÊÇÎÒһʱûÓÐ×¢ÒâŶ.......Ó¦¸ÃÊÇÏÖÔÚÕâ¸öÑù×ӲŶÔŶ,лл¸ßÊÖÖ¸µãŶ!

[[i] ±¾Ìû×îºóÓÉ loveangela ÓÚ 2007-6-26 17:52 ±à¼­ [/i]]

li-jiahuan ·¢±íÓÚ 2007-6-23 17:08

ºÃÏñÓÃshell´¦ÀíºÜÂé·³¡£¡£¡££¨Ò²ÐíawkºÜ·½±ã£¿£©
¿É²»¿ÉÒÔÓÃPerl¡£¡£¡£

loveangela ·¢±íÓÚ 2007-6-23 21:13

¸ßÊÖÓÃawk´¦ÀíϰÉ,лл

davi ·¢±íÓÚ 2007-6-25 22:30

µÚ¶þ¸öÎļþÖÐµÄ ±àºÅºÍÐÕÃû ¶¼ºÍµÚÒ»¸öÎļþÒ»ÑùµÄ»° £¬¾ÍÓ¦¸ÃûÓÐÕâÐа¡
003,ÀîËÄ,101000102,300,101,22222222222

Ö»ÄܲÂÒ»ÏÂÁË
[code]
$ awk 'BEGIN{OFS=FS=","}NR==FNR{hash[$1","$2]=$3}NR>FNR{if(hash[$1","$2]){$4=hash[$1","$2];print;delete hash[$1","$2]}else{for(i in hash){if(hash[i]){print i,"         ",hash[i],$5","}}}}' 2.txt 1.txt
001,ÕÅÈý,101000101,100,101,11111111111,
002,ÕÅÈý,         ,200,101,
004,ÍõÎå,         ,500,101,
003,ÀîËÄ,         ,300,101,
[/code]

li-jiahuan ·¢±íÓÚ 2007-6-26 09:28

×Ðϸ·ÖÎöÁËÒ»ÏÂ
¸ø³öµÄʾÀýºÍ½á¹û
ÓëÃèÊöµÄ²»Ì«Ïà·û

002,ÀîËÄ,101000102,0.00,101,22222222222,
003,ÀîËÄ,300,
ÒÔÉÏÁ½Ðкϲ¢³ÉÁË
003,ÀîËÄ,101000102,300,101,22222222222
£¿£¿£¿

loveangela ·¢±íÓÚ 2007-6-27 19:31

µÚ¶þ¸öÎļþÖÐµÄ ±àºÅºÍÐÕÃû ¶¼ºÍµÚÒ»¸öÎļþÒ»ÑùµÄ»° £¬¾ÍÓ¦¸ÃûÓÐÕâÐа¡
003,ÀîËÄ,101000102,300,101,22222222222

Ö»ÄܲÂÒ»ÏÂÁË

[Copy to clipboard] [ - ]CODE:
$ awk 'BEGIN{OFS=FS=","}NR==FNR{hash[$1","$2]=$3}NR>FNR{if(hash[$1","$2]){$4=hash[$1","$2];print;delete hash[$1","$2]}else{for(i in hash){if(hash[i]){print i,"         ",hash[i],$5","}}}}' 2.txt 1.txt
001,ÕÅÈý,101000101,100,101,11111111111,
002,ÕÅÈý,         ,200,101,
004,ÍõÎå,         ,500,101,
003,ÀîËÄ,         ,300,101,

¸ßÊÖºÃÏó»¹ÓеãÎÊÌâŶ£¬Èç¹û°ÑÎļþ1.txt ¸ÄΪ:
001,ÕÅÈý,101000101,0.00,101,11111111111,
002,ÀîËÄ,101000102,0.00,101,22222222222,
003,ÀîËÄ,101000103,0.00,101,33333333333,
ÔËÐнá¹û¾Í»á³öÎÊÌâ,Çë¸ßÊÖÖ¸µãÏÂ.

davi ·¢±íÓÚ 2007-6-27 22:35

ºÇºÇ µ±Ê±Ð´µÄÇ·¿¼ÂÇ
[code]
$ cat 1.txt
001,ÕÅÈý,101000101,0.00,101,11111111111,
002,ÀîËÄ,101000102,0.00,101,22222222222,
003,ÀîËÄ,101000103,0.00,101,33333333333,

davistar ~/shell/pdir
$ cat 2.txt
001,ÕÅÈý,100,
002,ÕÅÈý,200,
003,ÀîËÄ,300,
004,ÍõÎå,500,

davistar ~/shell/pdir
$ ./t.awk 2.txt 1.txt
001,ÕÅÈý,101000101,100,101,11111111111,
003,ÀîËÄ,101000103,300,101,33333333333,
002,ÕÅÈý,         ,200,101,
004,ÍõÎå,         ,500,101,

davistar ~/shell/pdir
$ cat ./t.awk
#!/usr/bin/awk -f
BEGIN{
OFS=FS=","
}
NR==FNR{
hash[$1","$2]=$3
}
NR>FNR{
     if(hash[$1","$2]){
        $4=hash[$1","$2]
        print
        delete hash[$1","$2]}
     }
END{
   for(i in hash){
      if(hash[i]){
         print i,"         ",hash[i],$5","
      }
    }

   }

[/code]

btw:ÎÒ°ÑÖÐÎĵıíÍ·È¥µôÁË¡£Êä³ö¸ñʽ¥Ö÷×Ô¼ºÐÞ¸ÄһϰÉ

040410615 ·¢±íÓÚ 2007-10-9 20:52

¸ú:P Â¥ÉϵÄѧÁËÒ»ÕÐ

TUDOU01 ·¢±íÓÚ 2007-10-10 20:47

²»´í£¡²»´í£¡ÓÐѧµ½Ðµļ¼ÇÉ£¡

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.