作者corny (玉咪)
看板Perl
标题[问题] 两档案资料合并
时间Sun Mar 21 01:08:06 2010
我有两个档案
这两个档案都是好几万笔
a.txt b.txt
------------- -------------
abc111 abc123 abc555 abc111
abc222 abc124 cde666 cde123
cde333 cde125
cde444 cde126
------------- -------------
目标是要知道 a.txt 跟 b.txt 第一栏的前三个字元是不是相同
并且抓出该行输出到 c.txt
c.txt
---------------------------
abc111 abc123 abc555 abc111
abc222 abc124 abc555 abc111
cde333 cde125 cde666 cde123
cde444 cde126 cde666 cde123
---------------------------
现在写好了一个shell script如下
不过执行效率非常差
全部跑完需要好几个小时
在网路上找到一些关於perl的资讯
不过完全没有接触过这个语言
不知道perl是不是能快速的处理
while read line1
do
temp1=$(echo $line1 | awk '{print substr($1,1,3)}')
while read line2
do
temp2=$(echo $line2 | awk '{print substr($1,1,3)}')
[ $temp1 == $temp2 ] && echo $line2 $line1 >> c.txt
done < a.txt
done < b.txt
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.167.225.204