当前位置: 技术问答>linux和unix
linux shell 读取文件效率低下问题 在线等
来源: 互联网 发布时间:2016-12-30
本文导语: 如题,现在我的需求是这样的,读第一个文件的每一行,然后得到最后两个字段,查询另外一个文件,然后联接起来,生成一个新文件.比如说一个文件a的一行记录如下 13694233929,nokia,n93 然后得到nokia,n93,查询另外一个文件,该...
如题,现在我的需求是这样的,读第一个文件的每一行,然后得到最后两个字段,查询另外一个文件,然后联接起来,生成一个新文件.比如说一个文件a的一行记录如下 13694233929,nokia,n93 然后得到nokia,n93,查询另外一个文件,该文件大概有1w 条记录,比如说得到的如下所示nokia,n93,648,400,sybriam os.... 然后将这条记录与13694233929连接起来,放进一个新文件里面去,如此操作,直到读取完a 文件的所有内容.a 文件大概有400m 左右大小,有700w 条记录.所以我将他cut成40部分,然后进行下面的操作,可是我发现如果按照我这样来实现,效率很低,我测试过两分钟才写进2w 条记录,哪位大虾能帮帮小弟阿,小弟刚接触linux ,莫见怪.代码如下:
#!/bin/bash
while read LINE
do
str=`echo $LINE| awk -F ',' '{print $2","$3}' `
phoneNum=`echo $LINE | awk -F ',' '{print $1}'`
strT=`grep -n "$str" ./terminal_b`
# echo $str1
phoneName=`echo $strT |awk -F ':' '{print $2}'`
# index=`expr index "$strT" ":"`
# echo ${strT:index}
str=$phoneNum,$phoneName
echo $str >> /home/jinwei/test/awkTest/test
done