".", "-", "/" 등과 같은 모든 기호를 ""로 바꾸고 싶습니다.
시도했지만 sed 's/[[!:alnum:]]/ /g' example.txt
작동하지 않습니다
의 경우 sed 's/[,;\.\-\/()_]/ /g' example.txt
'-' 대신 ''을 사용할 수 없다는 것을 알았습니다.
이를 수행할 수 있는 방법이 있습니까?
답변1
영숫자가 아닌 모든 문자를 일치시키려면 다음 [^[:alnum:]]
과 같습니다. [^abc]
선행 캐럿은 대괄호 표현식이 나열된 문자를 제외한 모든 문자와 일치하도록 합니다.
리터럴 대시를 일치시키려면 일치하는 문자 목록을 생성하기 위해 해석되지 않도록 해야 합니다. 대괄호 표현식의 첫 번째 문자로 만드십시오: [-,.;/()_]
.
/
sed는 대괄호 표현식 안에 있는 경우 구분 기호로 처리하지 않으므로 s///
앞에 백슬래시를 붙일 필요가 없습니다. (백슬래시는 자체적으로 일치합니다.) 예를 들어 echo 'a\b/c' | sed 's/[/\]/./g'
print a.b.c
.
예를 들어regex(7)
매뉴얼 페이지정규식 구문에 대한 참고 사항입니다. (주로 sed -E
많은/대부분의 sed에서 사용되는 확장 정규 표현식(ERE)에 대해 설명합니다.)