sed를 사용하여 전체 파일의 " "를 "0x02"로 바꾸십시오.

sed를 사용하여 전체 파일의 " "를 "0x02"로 바꾸십시오.

using 을 모두 &#x2로 바꿔야 합니다 . 다음 내용이 유효합니까, 아니면 사용해야 합니까 ?0x02sed\

sed -i -E "s/<&#x2>/<0x02>/g" $output_file

그렇다면 어떻게 해야 합니까?

답변1

&#x2문자열이 명령의 패턴 부분에서 문자 그대로 해석 되도록 문자열에 이스케이프해야 하는 특수 문자가 없습니다 .s///sed

또한 대체 문자열에는 특별한 처리가 필요한 특수 문자가 없습니다 0x02(GNU를 사용하는 경우 대체 문자열의 특수 문자 는 &특수 문자 등이 됩니다 ).\1\2\n\tsed

이것은 당신이 할 수 있어야한다는 것을 의미합니다

sed 's/&#x2/0x02/g' inputfile >outputfile

특별한 처리가 필요할 수 있는 유일한 방법은 &#x2하위 문자열의 대체를 피하는 것입니다. 예를 들어 &#x23질문에 예제 문서가 표시되지 않으므로 이것이 문제가 될지, 이를 방지하는 최선의 방법을 정확히 말할 수 없습니다.

일반적으로 말하면,아니요실수로 데이터가 손실되는 것을 방지하기 위해 편집 표현식이나 스크립트를 사용할 수 있다는 것을 알 때까지 -iwith 옵션을 사용하십시오 . 여기서도 확장 정규식을 전혀 다루지 않으므로 여기서도 그럴 필요가 없습니다 .sedsed-E

sed이름이 변수에 저장된 파일에 대해 명령을 실행하는 경우 해당 변수의 확장을 큰따옴표로 묶어야 합니다(참조:공백이나 기타 특수 문자 때문에 쉘 스크립트가 멈추는 이유는 무엇입니까?).

관련 정보