Shell script에서 특정 문자 주변 공백 제거

diskam의 이미지

안녕하세요

shell script로 특정 문자 주변 공백 제거를 하려고 하는데 어떻게 해야할 지 감이 안 잡혀서요

예를 들어

a라는 문자가 있으면 a 문자 주변 공백만 제거할려고 하거든요

'bab' = bab 출력
'b ab' = bab 출력
'b ab' = bab 출력
'ba b' = bab 출력
'ba b' = bab 출력

이런 식으로 하려고 하는데

우선 sed로

sed "s/ a /a/;s/ a/a/;s/a /a/;"

이렇게 해보았는데 저런 경우에는 a 주변에 공백이 2개 이상일 때 제대로 작동을 안 하더라고요

다른 방법이 없을까요?

diskam의 이미지

예를 든 설명에서 공백 2개 이상 입력하니까 2개 이상 공백은 다 제거되서 나오네요 ㅜ

doodoo의 이미지

sed 's/\ \+a/a/;s/a\ \+/a/' 는요?

diskam의 이미지

감사합니다. 그렇게 해보니까 잘 되네요 감사합니다!

익명 사용자의 이미지

sed 's/\s*\(a\)\s*/\1/g'

익명 사용자의 이미지

sed '%s/ *a */a/'