ファイルから/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これは先行文字を除くすべての文字ペアと一致し、\x022番目の文字に置き換えられます。

答え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

関連情報