读书人

求一条awk的话语

发布时间: 2013-07-04 11:45:28 作者: rapoo

求一条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;  

读书人网 >UNIXLINUX

热点推荐