내가 원하지 않는 대괄호 [] 사이에있는 내용으로 가득 찬 일부 텍스트로 작업하고 있습니다. 괄호를 직접 삭제할 수 있으므로 하나의 라이너가 필요하지 않지만 그 사이의 모든 것을 제거하는 하나의 라이너가 필요합니다.
대괄호 대신 괄호 ()는 어떻습니까?
답변
[some text]
빈 문자열로 교체하십시오 . 중첩 된 대괄호를 구문 분석하지 않으려 some text
는 경우 대괄호를 포함 할 수 없습니다.
sed -e 's/\[[^][]*\]//g'
참고 브래킷 식에서 것을 [^][]
아무것도하지만 일치하는 [
나 ]
의이 ]
먼저 와야. 일반적으로 a ]
는 문자 세트를 종료하지만 세트의 첫 번째 문자 ( ^
보완 문자 뒤 ) 인 경우 ]
자체를 의미합니다.
중첩 된 대괄호를 구문 분석하거나 대괄호 텍스트가 여러 줄에 걸쳐있을 수있는 경우 sed가 올바른 도구가 아닙니다.
답변
이 명령 sed -e 's/([^()]*)//g'
은 대괄호 대신 괄호를 사용합니다.