码迷,mamicode.com
首页 > 其他好文 > 详细

awk使用实例一则

时间:2015-11-05 21:59:08      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

$META_DB -N -e "use web_boss_rainbow;
select iDsId, sDbname, sHost, sPort, sNameServiceKey,sDriver from t_boss_v2_page_datasource;">${sDataFile}
sed -i ‘s/\t/,/g‘ ${sDataFile}
:>${loadFn}
i=1
while read line
do
    ((i++))
iDsId=`echo $line|awk -F ‘,‘ ‘{print $1}‘`
sDbname=`echo $line|awk -F ‘,‘ ‘{print $2}‘`
sHost=`echo $line|awk -F ‘,‘ ‘{print $3}‘`
sPort=`echo $line|awk -F ‘,‘ ‘{print $4}‘`
sNameServiceKey=`echo $line|awk -F ‘,‘ ‘{print $5}‘`
sDriver=`echo $line|awk -F ‘,‘ ‘{print $6}‘`

if [ -n "$sNameServiceKey" ]; then
    zkname $sNameServiceKey |awk  ‘{print iDsId","sDbname","$1","$2}‘ iDsId="$iDsId" sDbname="$sDbname">>${loadFn}
else
    echo $iDsId","$sDbname","$sHost","$sPort>>${loadFn}
#直接用awk向文件中写入不成功,用echo写入文件 # awk ‘{print iDsId","sDbname","sHost","sPort}‘ iDsId="$iDsId" sDbname="$sDbname" sHost="$sHost" sPort="$sPort">>${loadFn} fi done <${sDataFile}

 从mysql表中读取数据写入文件,并按行读取进行解析,并将原文件中的第一、二列和解析出来的第一二列写入文件中。

由于sDataFile中有为空的数据,之前的文件每列是按tab分割,所以先用sed将\t替换为逗号,

awk可以用-F指定分隔符,将每行用awk分割并赋予变量

awk不接收外来文件或字符串输入时,直接用awk写入文件有问题,改用echo写入到文件里,暂时没有时间查原因,以后待查。

awk使用实例一则

标签:

原文地址:http://www.cnblogs.com/yitianke/p/4940754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!