이 명령을 사용하여 텍스트 파일에서 모든 구두점을 제거하려고 하는데 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
...하지만 이 속도는 약간 느려질 것으로 예상됩니다(대량 입력 데이터에서만 눈에 띄게 나타남).