sed 명령을 사용하여 모든 구두점을 제거하는 방법은 무엇입니까?

sed 명령을 사용하여 모든 구두점을 제거하는 방법은 무엇입니까?

이 명령을 사용하여 텍스트 파일에서 모든 구두점을 제거하려고 하는데 sed방법을 잘 모르겠습니다.

답변1

"구두점"이 세트의 문자를 나타내는 경우

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

[:punct:](이것은 정규 표현식으로 작성된 "POSIX 구두점" 세트입니다. ) "제거"가 "완전히 제거"를 의미하는 경우 다음이 더 효율적입니다 tr.

tr -d '[:punct:]' <file.in >file.out

이는 tr입력 스트림에서 위 세트의 모든 문자를 제거하고 이름이 지정된 파일에서 읽고 file.in그 결과를 일부 파일에 쓰도록 지시합니다 file.out.

의 경우 sed, 당신도 같은 일을 할 것입니다

sed 's/[[:punct:]]//g' <file.in >file.out

...하지만 이 속도는 약간 느려질 것으로 예상됩니다(대량 입력 데이터에서만 눈에 띄게 나타남).

관련 정보