아래와 같은 샘플 데이터가 있습니다.
'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'