쉼표로 구분된 작은따옴표 문자열 바꾸기

쉼표로 구분된 작은따옴표 문자열 바꾸기

아래와 같은 샘플 데이터가 있습니다.

'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'

관련 정보