ファイルから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番目の文字に置き換えられます。
答え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