![쉼표로 구분된 작은따옴표 문자열 바꾸기](https://linux55.com/image/179135/%EC%89%BC%ED%91%9C%EB%A1%9C%20%EA%B5%AC%EB%B6%84%EB%90%9C%20%EC%9E%91%EC%9D%80%EB%94%B0%EC%98%B4%ED%91%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
아래와 같은 샘플 데이터가 있습니다.
'1','2','3,3','4'
sed 명령을 찾아 다음과 같이 변경하려고 합니다.
'1','2','NEW','4'
먼저 다음 예제를 시도했습니다.
1,2,3,4
이 sed는 작동합니다
's/[^,]*/NEW/'3
결과
1,2,NEW,4
그런데 아래 예제 데이터로는 무엇을 해야 할지 모르겠습니다...
'1','2','3,3','4'
돕다?
답변1
아마도 가장 간단한 해결책은 외부에서 큰따옴표를 사용하는 것입니다.
$ echo "'1','2','3,3','4'" | sed "s/'[^']*'/'NEW'/3"
'1','2','NEW','4'
그렇지 않으면 유사한 시퀀스를 사용하여 '\''
이스케이프된 리터럴 따옴표 주위의 작은 따옴표를 닫고 다시 열 수 있습니다.
$ echo "'1','2','3,3','4'" | sed 's/'\''[^'\'']*'\''/'\''NEW'\''/3'
'1','2','NEW','4'