문자열 중간에 문자 삽입

문자열 중간에 문자 삽입

문자열에 하이픈 "-"을 추가하고 싶습니다.

어떻게 행동하고 싶나요?

vol0802-f522-6cc63-0a3-d

출력에 대해 위의 정보를 얻습니다. 그러나 다음 출력이 필요합니다.

vol-0802f5226cc630a3d

-다음을 사용하여 누락된 항목을 추가할 수 있습니다.

sed 's/\(.\{3\}\)/&-/;'

그러나 위 명령은 다른 -기호를 변경하지 않고 유지합니다.

답변1

사용sed

$ echo "vol0802-f522-6cc63-0a3-d" | sed 's/-//g;s/[^0-9]*/&-/'
vol-0802f5226cc630a3d

답변2

에서는 bash 4+다음과 같이 작동합니다.

String='vol0802-f522-6cc63-0a3-d'
String=${String//-}
echo ${String}
vol0802f5226cc630a3d
String="${String:0:3}-${String:3}"
echo ${String}
vol-0802f5226cc630a3d

-세 번째 위치가 항상 필요한지 여부는 말하지 않았지만 쉽게 처리할 수 있습니다. 도움이 되지 않으면 귀하의 환경에 대해 알려주십시오. 태국어!

답변3

제공된 입력에 대해 설명된 대로 이 작업을 수행해야 합니다.

sed 's/-//g;s/^.\{3\}/&-/'

다음과 같아야 합니다.

sed 's/-//g;s/^vol/&-/'

관련 정보