잘못 이스케이프된 따옴표를 sed로 바꾸기

잘못 이스케이프된 따옴표를 sed로 바꾸기

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

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

아니면 \"그냥 공간?

이후 \나는 혼란을 피하기 위해 이 질문을 했습니다.

답변1

이것으로 충분합니다:

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

이렇게 하면 백슬래시( \\) 뒤에 임의 개수의 백슬래시( \\*)와 큰따옴표( ")가 뒤따르는 백슬래시 뒤에 큰따옴표( \\")가 오는 것으로 대체됩니다. sed 's/\\\\*"/\\"/g한 줄에 있는 모든 항목을 바꾸려면 '를 사용하세요 .

답변2

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

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

관련 정보