sed заменить на hex - PullRequest
       28

sed заменить на hex

4 голосов
/ 31 июля 2011

UTF-8 файл test.txt:

AAAAAAAAAAAAAA

в шестнадцатеричном виде

41 41 41 41 41 41 41 41 41 41

sed s/A/B/g test.txt работает

sed s/\x41/B/g test.txt не работает

Некоторые символы не могут быть напечатаны, поэтому я должен использовать их шестнадцатеричное значение, A это просто пример.

Ответы [ 2 ]

11 голосов
/ 31 июля 2011

оболочка обрабатывает его, использует одинарные кавычки.

sed 's/\x41/B/g' test.txt

echo -e \x41   # x41
echo -e '\x41' # A
4 голосов
/ 31 июля 2011

Если вы хотите заменить только отдельные символы, вы должны иметь возможность использовать tr с восьмеричным экранированием, например так:

tr '\101' B
...