从文件中删除 /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

相关内容