使用 awk 将字符添加到特定字段

add character to particular field using awk

如何使用 awk 将“0”添加到第 2 个字段的第一个和第 9 个数字?

数据

  12345,20150303024955

输出

  12345,0201503030024955

我刚接触 shell 脚本。

假设 "add to" 你的意思是 "prefix with":

$ echo '12345,20150303024955' |
awk 'BEGIN{FS=OFS=","} {sub(/.{8}/,"&0",); ="0"}1'
12345,0201503030024955

您要求 awk,但这在 sed 中也很容易做到:

$ echo '12345,20150303024955' | sed -r 's/,(.{8})/,0/'
12345,0201503030024955

工作原理

  • -r

    启用扩展正则表达式,这样我们就不需要反斜杠转义了。

  • s/,(.{8})/,0/

    查找后跟八个字符的逗号。将其替换为一个逗号、一个零、这八个字符和另一个零。