1
我有一个要求,用awk替换中间的6位数字'9'在下面的16位数字字段。请让我知道解决方案,因为我现在开始awk如何使用awk替换数字值的子串
分隔符:在文件|
实际数据:
2006-07-27|0|DBT|||6657832345233037|Y
在一个文件中的预期数据:
2006-07-27|0|DBT|||6657839999993037|Y
我有一个要求,用awk替换中间的6位数字'9'在下面的16位数字字段。请让我知道解决方案,因为我现在开始awk如何使用awk替换数字值的子串
分隔符:在文件|
实际数据:
2006-07-27|0|DBT|||6657832345233037|Y
在一个文件中的预期数据:
2006-07-27|0|DBT|||6657839999993037|Y
awk
来救援!
UPDATE您必须设置OFS
以保留分隔符。
awk 'BEGIN{FS=OFS="|"} {$6=substr($6,1,6) "999999" substr($6,13)}1'
只是为了好玩,这里是另一种选择:
awk -F'|' '$6 = gensub(/^(.{6}).{6}/,"\\1999999",1,$6)' OFS="|"
真棒!解决方案工作得很好....谢谢你:) – Leo
awk -F'|' 'BEGIN {OFS =“|”} {$ 6 = substr($ 6,1,6)“999999”substr($ 6,13)} 1' –
是,thx,已更新。 – karakfa