텍스트 파일에서 특정 심볼의 모든 인스턴스를 제거하는 방법은 무엇입니까?


13

큰 따옴표로 묶인 필드가있는 CSV 파일 (대략 GiB의 절반, 일반적인 텍스트 편집기를 사용할 수 없음)이 "abc","def"있지만 따옴표 가없는 파일이 필요합니다 (파일 일관성을 손상시키지 않을 것이라고 확신합니다- 쉼표는 그 안에 값 안에 사용되지 않습니다).

장소에 공백을 넣지 않고 모든 따옴표를 제거하는 방법은 무엇입니까?

답변:


21

tr 그렇게 할 수 있습니다 :

tr -d \" < infile > outfile

당신은 또한 사용할 수 있습니다 sed:

sed 's/"//g' < infile > outfile

1
왜 제거 < infile > outfile했습니까? IMHO는 더 유익했습니다.
Ivan

@Ivan 나는 아마도 그것이 두번째 생각에 암시 적이라고 생각했다.
Chris Down

숙련 된 명령 행 사용자에게만 해당됩니다. 비록 <SQL 스크립트를 MySQL과 SQLite로 가져 오기 위해 두 번 전에 사용해 왔지만 <이 경우에 사용해야한다는 것이 즉시 분명합니다 . 필요할 수있는 사람들을 더 참조하기 위해 전체 명령 행 예제를 다시 반환하는 것이 좋습니다.
Ivan

@Ivan과 @Chris는을 포함하도록 다시 되돌 렸습니다 (검토 대기 중) < infile > outfile.
donothingsuccessfully

감사합니다, @donothingsuccessfully. 이전 주석을 완전히 잘못 입력했습니다. 편집 할 수없는 것이 유감입니다. %-]
Ivan

5

sed 명령 의 다른 버전 :

sed -i s/\"//g file.txt
  • sed S tream 에드 당사 홈페이지

    • -i 나는 장소 (파일을 제자리에 편집)
    • s의의 ubstitute 명령
    • /replacement_from_reg_exp/replacement_to_text/ 성명서
    • \"따옴표 앞에 백 슬래시 ( replacement_from_reg_exp )
    • 슬래시 델리 미터 사이의 빈 문자열 ( replacement_to_text )
    • g g lobal (라인의 모든 항목 교체)
  • file.txt 파일명

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.