이것을 삭제하는 Linux 명령

이것을 삭제하는 Linux 명령

내 텍스트 파일에서 이 패턴을 제거하고 싶습니다 [-.(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 > 표준 출력으로 인쇄하는 대신 파일을 편집합니다. (원하는 출력인지 확인하려면 먼저 이 옵션을 제거하세요.)

관련 정보