awk は数値を文字列の末尾にコピーします。

awk は数値を文字列の末尾にコピーします。

現在私が使用している

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

これにより、文字列のすべての数字がコピーされ、文字列の末尾に貼り付けられます。たとえば、次のようになります。

入力 -

1Hello123

出力 -

1Hello1231123

しかし、文字列の先頭または中間ではなく、最後の数字だけをコピーしたいと思います。

したがって、この場合、予想される結果は次のとおりです。

1Hello123123

この出力では、先行 1 はまだコピーされていません。

また、sedではなくAWKを使用して実行する必要があります。

答え1

いくつかのオプションがあります:

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

または

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

関連情報