Удалить символ / x02 из файла

Я пытаюсь удалить символ 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
0
26.02.2017, 15:57
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
0
28.01.2020, 02:46

Вы можете явно сопоставить все, кроме I:

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

Это сопоставляет любую пару символов, которая представляет собой любой символ, кроме I, которому предшествует \x02, и заменяет его на второй символ.

1
28.01.2020, 02:46

Теги

Похожие вопросы