저는 대괄호 [] 사이에 원하지 않는 내용으로 채워진 일부 텍스트를 작업하고 있습니다. 대괄호를 직접 제거할 수 있으므로 이 작업을 수행하는 데 한 줄의 코드가 필요하지 않지만, 그 사이의 모든 항목을 제거하려면 한 줄의 코드가 필요합니다.
대괄호 대신 괄호()를 사용하는 것은 어떻습니까?
답변1
[some text]
빈 문자열로 대체됩니다 . 중첩된 괄호를 구문 분석하지 않으려는 경우 some text
괄호를 포함할 수 없습니다.
sed -e 's/\[[^][]*\]//g'
대괄호 표현식에서 또는 이외의 항목 [^][]
과 일치하려면 가 먼저 와야 합니다. 일반적으로 a는 문자 세트를 끝내지만, 문자 세트의 첫 번째 문자(여기서는 보완 문자 다음)인 경우 a는 그 자체를 나타냅니다.[
]
]
]
^
]
중첩된 대괄호를 정말로 구문 분석하고 싶거나 대괄호 안의 텍스트가 여러 줄에 걸쳐 있을 수 있다면 sed는 올바른 도구가 아닙니다.
답변2
이 명령은 sed -e 's/([^()]*)//g'
대괄호 대신 괄호를 실행합니다.