awk使用实例一则
2015-11-05 20:47
162 查看
$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写入到文件里,暂时没有时间查原因,以后待查。
相关文章推荐
- 0928,数据库
- hdoj--3062--party(2-sat 可行解)
- 新生记
- Day4
- 0924,函数返回多个值
- hdoj--3062--party(2-sat 可行解)
- Android 控件 —— Navigation Drawer(导航抽屉)模式
- XML
- 信息安全系统设计基础第九周学习总结
- 冒泡排序推导
- Java并发编程(四) 任务的执行
- mybatis_plus 2.51 破解
- spfa算法O(kE)
- 内部类总结
- C#习题之推箱子
- Xcode Object-c 更改按钮外观
- SPOJ 375 树链剖分
- soj 2113 数字游戏(环形DP)
- hdu5465
- Xcode的一些使用技巧