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

时间:2017-06-14 22:54:04

标签: awk substring

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

分隔符:|

档案中的实际数据:

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

文件中的预期数据:

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

2 个答案:

答案 0 :(得分:3)

awk救援!

更新您必须设置OFS以保留分隔符。

awk 'BEGIN{FS=OFS="|"} {$6=substr($6,1,6) "999999" substr($6,13)}1'

答案 1 :(得分:0)

只是为了好玩,这是另一种选择:

awk -F'|' '$6 = gensub(/^(.{6}).{6}/,"\\1999999",1,$6)' OFS="|"