문자, 숫자가 아닌 항목은 모두 ' '로 대체

문자, 숫자가 아닌 항목은 모두 ' '로 대체

".", "-", "/" 등과 같은 모든 기호를 ""로 바꾸고 싶습니다.

시도했지만 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)에 대해 설명합니다.)

관련 정보