• awk使用实例一则


    $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/	/,/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将 替换为逗号,

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

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

  • 相关阅读:
    RUST实践.md
    redis.md
    opencvrust.md
    aws rds can't connect to mysql server on 'xx'
    Foundation ActionScript 3.0 With Flash CS3 And Flex
    Foundation Flash Applications for Mobile Devices
    Flash Mobile Developing Android and iOS Applications
    Flash Game Development by Example
    Actionscript 3.0 迁移指南
    在SWT中非UI线程控制界面
  • 原文地址:https://www.cnblogs.com/yitianke/p/4940754.html
Copyright © 2020-2023  润新知