我想增加 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
-FM
并OFS=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
并根据需要增加最后一个字符。