잘못 이스케이프된 따옴표를 sed로 교체

잘못 이스케이프된 따옴표를 sed로 교체

\\"큰따옴표가 이스케이프 처리된( 잘못된 대신 ) 매우 큰 CSV를 정리해야 합니다 \". 모든 인스턴스를 어떻게 교체할 수 있습니까?

\\"
\\\"
\\\\"
.....

공간이 있는 걸까요 \", 아니면 그냥 공간만 있는 걸까요?

\혼란을 더하지 않기 위해 이 질문을 드리는 것이기 때문입니다 .

답변1

이것으로 충분합니다:

sed 's/\\\\*"/\\"/'

이렇게 하면 백슬래시( \\) 뒤에 오는 백슬래시( \\*)와 큰따옴표( ")가 백슬래시 뒤에 큰따옴표( \\")로 대체됩니다. sed 's/\\\\*"/\\"/g한 줄의 모든 항목을 ' .

답변2

sed정규식 확장 옵션을 지원하는 경우 다른 옵션 -E(백슬래시 수는 계산되지 않음):

sed -E 's/[\]+"/\\"/g' file

관련 정보