Я пытаюсь удалить символ x02 из файла, я могу легко удалить x02 из файла с помощью sed -i 's / \ x2 // g '
команда. Проблема здесь в том, что я не хочу удалять символ 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
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
Вы можете явно сопоставить все, кроме I
:
sed -i 's/\x02\([^I]\)/\1/g
Это сопоставляет любую пару символов, которая представляет собой любой символ, кроме I
, которому предшествует \x02
, и заменяет его на второй символ.