Наткнулся на странное поведение sed, когда распознается только часть последовательности HEX:
Есть строка со странными символами, которую я пытаюсь исправить, и при попытке замены HEX sed находит только первые три символа.
xxd
вывод строки с проблемными символами:
6965 7261 f480 8488 6e6f 7761 6e61 2031 iera....nowana 1
Я хотел бы заменить эту последовательность f480 8488
на печатные символы, но sed может распознать только сначалатри:
sed 's/\xf4\x80\x84/00/g' | xxd
6965 7261 3030 886e 6f77 616e 6120 3136 iera00.nowana 16
f480 84
был правильно заменен на 3030
, однако
sed 's/\xf4\x80\x84\x88/00/g' | xxd
6965 7261 f480 8488 6e6f 7761 6e61 2031 iera....nowana 1
не находит f480 8488
Если я разобьюсь, если на два оператора sed sed 's/\xf4\x80/0/g' | sed 's/\x84\x88/0/g'
все работает нормально
Я бы понял, если он ищет пары, но почему только три, а не четыре символа в последовательности?