sed에게 모든 특수 문자를 무시하도록 요청

sed에게 모든 특수 문자를 무시하도록 요청

행을 삭제하려면 다음 코드를 사용합니다.

sed -i "0,/$DELETE_THIS/{/$DELETE_THIS/d;}" file.txt

하지만 변수에 등의 특수 문자가 포함되어 있으면 이 DELETE_THIS코드 는 실패합니다 ../*

sed모든 특수 문자를 무시하고 기본 텍스트로 사용하도록 지시하는 방법이 있습니까 ?

답변1

  • 문자열이 있고 $DELETE_THIS문자 그대로 처리하는 방식으로 sed해당 문자열을 전달 하려고 합니다.sed

  • 이렇게 하려면 의미가 있는 모든 문자 쌍을 인용해야 합니다 sed.

  • 백슬래시를 앞에 붙입니다. 예를 들어 Bash 구문을 사용하면 다음과 같습니다.

    DELETE_THIS="$(<<< "$DELETE_THIS" sed -e 's`[][\\/.*^$]`\\&`g')"
    
  • ^ab[c-d]\ef$예를 들어 , 이는 \^ab\[c-d\]\\ef\$.

관련 정보