首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

求一条awk的话语

2013-07-04 
求一条awk的语句想将第一个9替换为0;数据如下:SELECT AFT_TRD_OPT_LOG, SETTBAK_AFT_TRD_OPT_LOG, 9

求一条awk的语句
想将第一个9替换为0;数据如下:
SELECT 'AFT_TRD_OPT_LOG', 'SETTBAK_AFT_TRD_OPT_LOG', '9', 'PRESETT_AFT_TRD_OPT_LOG', '9', '', '', '' FROM BACKUP_TABLE WHERE 1 = 1;
替换后的结果为;
SELECT 'AFT_TRD_OPT_LOG', 'SETTBAK_AFT_TRD_OPT_LOG', '0', 'PRESETT_AFT_TRD_OPT_LOG', '9', '', '', '' FROM BACKUP_TABLE WHERE 1 = 1;
[解决办法]

#!/bin/sh
awk 'BEGIN{FS=" +";ORS=" ";flag=0}{
            while(++c<=NF)
            {
                if($c~/9/&&flag==0)
                {
                    gsub(9,0,$c);
                    print $c
                    flag=1;
                }
                else
                    print $c
            }
            print "\n"
}' 1.txt


1.txt :
SELECT 'AFT_TRD_OPT_LOG', 'SETTBAK_AFT_TRD_OPT_LOG', '9', 'PRESETT_AFT_TRD_OPT_LOG', '9', '', '', '' FROM BACKUP_TABLE WHERE 1 = 1;

执行结果
SELECT 'AFT_TRD_OPT_LOG', 'SETTBAK_AFT_TRD_OPT_LOG', '0','PRESETT_AFT_TRD_OPT_LOG', '9', '', '', '' FROM BACKUP_TABLE WHERE 1 = 1;  

热点排行