如何使用awk替换数值的子字符串

如何使用awk替换数值的子字符串,awk,substring,Awk,Substring,我需要使用awk将下面16位数字字段中的中间6位数字替换为数字“9”。请让我知道解决方案,因为我现在开始使用awk 分隔符:| 文件中的实际数据: 2006-07-27|0|DBT|||6657832345233037|Y 文件中的预期数据: 2006-07-27|0|DBT|||6657839999993037|Y awk救援 更新您必须设置OFS以保留分隔符 awk 'BEGIN{FS=OFS="|"} {$6=substr($6,1,6) "999999" substr($6,13)}

我需要使用awk将下面16位数字字段中的中间6位数字替换为数字“9”。请让我知道解决方案,因为我现在开始使用awk

分隔符:
|

文件中的实际数据:

2006-07-27|0|DBT|||6657832345233037|Y
文件中的预期数据:

2006-07-27|0|DBT|||6657839999993037|Y

awk
救援

更新您必须设置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="|"
awk-F'|''BEGIN{OFS=“|”}{$6=substr($6,1,6)“99999”substr($6,13)}1'substr($6,1,6)和substr($6,13)中的1,6和13是什么意思?非常感谢。