shell 使用AWK的增量编号

zf9nrax1  于 6个月前  发布在  Shell
关注(0)|答案(2)|浏览(66)

我有一个文件,其中包含以下内容:

export TM_FUNCTION=SUM08619 ;export TM_PARAM_SEQNO=2 ;export PSEUDO_USER=HIHI; . /projects/MSS/LEE1MP/shells/sumh8701.sh  001 DATE:W:0:C:D:1:11:1:N:: DATE:W:0:C:D:1:11:N:1:W: IT ++ ++ 000052233714 DATE:W:0:C:D:1:11:N:N:: 100000 N FMPOST A / &

字符串
如果我运行,则返回以下值100000:

awk -F' ' '{ print $17 }' filename


我想增加17美元使用脚本由1每次我运行什么是最好的方法?

yyyllmsg

yyyllmsg1#

您可以使用

awk '{$17=$17+1}1' filename > tmp && mv tmp filename

字符串
每次调用此函数都会使字段17递增1。
如果您有GNU awk,您可以使用

awk -i inplace '{$17=$17+1}1' filename

ikfrs5lh

ikfrs5lh2#

mawk '++$17_'  # either form works
gawk '_$17++'

字符串
额外的_是一种有点不常见但仍然是POSIX-compliant的方式,

强制字符串连接空字符串_

因此,即使$17由于awk的特性而从-1增加到0,也可以保证打印出所有行:
数字零(+0):= false

  • stringzero("0"):=TRUE**(因为它是非空字符串)

相关问题