![문자열의 패턴 바꾸기](https://linux55.com/image/153176/%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98%20%ED%8C%A8%ED%84%B4%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
문자열의 모든 쉼표 작은 따옴표를 쉼표 작은 따옴표로 바꾸는 방법
예:
US1,US2,US3 -> US1','US2,','US3
다음 명령을 사용해 보았습니다.
a=US1,US2
echo ${a/,/\',\'}
하지만 이는 전부가 아닌 첫 번째 쉼표만 대체합니다.
나는 이것을 달성하기 위해 sed를 사용하는 방법을 알고 있지만 더 짧은 솔루션을 찾고 있습니다.
답변1
문자열의 모든 인스턴스를 매개변수 확장으로 바꾸려면 $haystack
다음 구문을 사용하여 각 "바늘"을 "핀"으로 변경합니다.
echo "${haystack//needle/pin}"
예를 들어:
$ foo="yabbadabbadoo"
$ echo "${foo//a/_}"
y_bb_d_bb_doo
그러나 특수 문자를 이스케이프해야 합니다.
$ foo="milk,eggs,pancake mix,butter"
$ echo "${foo//,/','}"
milk,eggs,pancake mix,butter
$ echo "${foo//,/\',\'}"
milk','eggs','pancake mix','butter