.CSV 파일의 여러 열에서 아포스트로피(')를 제거하는 방법은 무엇입니까?

.CSV 파일의 여러 열에서 아포스트로피(')를 제거하는 방법은 무엇입니까?

7개의 필드가 있는 .CSV 파일이 있고 파일의 세 번째와 네 번째 열에 아포스트로피( ' )로 시작하는 숫자가 있습니다. 아래 예를 참조하세요.

col0,col1,col2,col3,col4,col5,col6,
1value0,1value1,'8972991766941,'8972991766941,1value4,1value5,1value6,
2value0,2value1,'8912988876583,'8912988876583,2value4,2value5,2value6,
3value,3value1,'8912981226981,'8912981226981,3value4,3value5,3value6,
2value0,4value1,'8912971783681,'8912971783681,4value4,4value5,4value6,

sed 또는 awk만 사용하여 세 번째와 네 번째 열의 아포스트로피를 어떻게 제거할 수 있나요?

답변1

이렇게 할 수 있습니다 awk. 아이디어는아들열 3과 4에 명령을 설정하고 작은따옴표를 공백으로 바꿉니다. 여기에 \047표시된 8진수 코드입니다 '.

 awk -F, -v OFS=, '{sub(/\047/, "", $3); sub(/\047/, "", $4); print}' file.txt

답변2

다른 견적 분기 사용

sed "s/'//g" file

또는 인용문을 끝내고 아포스트로피를 피하고 인용문을 다시 시작하세요.

sed 's/'\''//g' file

이 경우 쉘에 특별한 의미를 갖는 아포스트로피를 제외하고는 따옴표가 필요하지 않습니다.

sed s/\'//g file

이는 큰따옴표를 사용하여 수행할 수도 있습니다.

sed s/"'"//g file

이 게시물의 댓글을 읽은 후 원래 질문을 다루지 않고 OP 댓글의 지휘소를 수정했다는 것을 깨달았습니다.

관련 정보