如何在 awk 中增加 aplha 数字字段

如何在 awk 中增加 aplha 数字字段

我想增加 M152DHD3H4M2 这个数字。

输出像

M152DHD3H4M3
M152DHD3H4M4
M152DHD3H4M5
M152DHD3H4M6

答案1

方法 1:将每个字符视为一个单独的字段

$ echo 'M152DHD3H4M2' | awk -F "" '{for(i=1;i<=4;i++) {$NF++;print}}' OFS=
M152DHD3H4M3
M152DHD3H4M4
M152DHD3H4M5
M152DHD3H4M6

-F ""告诉 awk 将输入中的每个字符视为单独的字段,并OFS=告诉 awk 不要在输出中添加任何字段分隔符。然后我们根据需要增加最后一个字段。

$NF++增加最后一个字段中的值。

POSIX 不需要这样的空字段分隔符,但至少 GNU awk 和 mawk 支持。

方法 2:用作M字段分隔符

$ echo 'M152DHD3H4M2' | awk -FM '{for(i=1;i<=4;i++) {$NF++;print}}' OFS=M
M152DHD3H4M3
M152DHD3H4M4
M152DHD3H4M5
M152DHD3H4M6

-FMOFS=M告诉 awk 在输入和输出上用作M字段分隔符。然后我们根据需要增加最后一个字段。

方法 3:使用以下方法将字符串分成几部分substr

$ echo 'M152DHD3H4M2' | awk '{for(i=1;i<=4;i++) print substr($1, 1, length($1)-1) i+substr($1, length($1))}'
M152DHD3H4M3
M152DHD3H4M4
M152DHD3H4M5
M152DHD3H4M6

在这里,我们使用子字符串函数 手动中断输入行,substr并根据需要增加最后一个字符。

相关内容