내 텍스트 파일에서 이 패턴을 제거하고 싶습니다 [-.(D_)-]
. sed와 awk로 해봤지만 결과가 없습니다.
기본적으로 텍스트 파일에서 이러한 문자 사이의 [-
모든 내용을 제거하고 싶습니다.-]
답변1
sed를 사용하세요:
sed 's/\[-.*-]//g'
예:
~ echo 'foo[-.(D_)-]bar' | sed 's/\[-.*-]//g'
foobar
이스케이프되지 않은 경우 [
대괄호 표현식(문자 목록 또는 범위 포함, 이 경우 목록 , , ) [-.*-]
의 시작으로 처리됩니다 .-
.
*
답변2
샘플 데이터와 출력을 제공하면 더 좋을 것입니다.
입력.txt:
test1[-.(D_)-]test2
[-
& 를 제거하려면 -]
다음을 시도하십시오.
sed -i "/\(.*\)[-.*-]\(.*\)/\1 \2/" Input.txt
[-
&를 유지하려면 다음을 시도하십시오 -]
.
sed -i "/\(.*\)[-.*-]\(.*\)/\1[--]\2/" Input.txt
산출:
test1[--]test2
-i > 표준 출력으로 인쇄하는 대신 파일을 편집합니다. (원하는 출력인지 확인하려면 먼저 이 옵션을 제거하세요.)