파일에서 /x02 문자 제거

파일에서 /x02 문자 제거

파일에서 x02 문자를 제거하려고 합니다. sed -i 's/\x2//g'명령을 사용하면 파일에서 x02를 쉽게 제거할 수 있습니다. 여기서 문제는 x02 로 시작하는 문자를 즉시 ​​제거하고 싶지 않다는 것입니다 I. 다른 모든 x02 문자를 제거하고 싶습니다.

예:

파일 데이터:

I^A12^Agop^Bal^BI^A3^B^B4^Aramu^BI^A56^Asubbu^BI^A78^Asai^B

예상 출력:

I^A12^Agopal^BI^A34^Aramu^BI^A56^Asubbu^BI^A78^Asai^B

답변1

다음을 제외한 모든 항목을 명시적으로 일치시킬 수 있습니다 I.

sed -i 's/\x02\([^I]\)/\1/g

I이는 선행 문자를 제외한 모든 문자 쌍과 일치 \x02하고 두 번째 문자로 대체됩니다.

답변2

sed -e '
  s/\(\x02\)\1\1*//g;   # erase 2 or more consecutive STX chars
  s/\x02\([^I]\)/\1/g;  # erase the STX only if followed by a non-I char
' yourfile

관련 정보