awk 将数字复制到字符串末尾

awk 将数字复制到字符串末尾

目前我正在使用

awk -F':' '{ j=$0; gsub(/[^0-9]+/,"",j); print $0 j }'

这将复制字符串中的所有数字并将它们粘贴到字符串的末尾,例如 -

输入 -

1Hello123

输出 -

1Hello1231123

但是我只想复制字符串末尾的数字,而不是开头或中间的数字

所以在这种情况下的预期输出将是 -

1Hello123123

在此输出中,开头的 1 尚未被复制。

还必须使用 AWK 完成,而不是 sed。

答案1

有几个选项:

$ echo 1Hello123 | awk '{sub(/[0-9]+$/,"&&",$0)} 1'
1Hello123123

或者

$ echo 1Hello123 | awk 'match($0,/[0-9]+$/) {print $0 substr($0,RSTART,RLENGTH)}'
1Hello123123

相关内容