현재 내가 사용하고 있는
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