При чтении файла журнала Windows в терминале Linux я вижу странный символ «001E»

Как я могу заменить его пробелом? Может быть, что-то вроде sed -e 's/010e/ /'

3 ответа3

1

Если вы видите эти четыре шестнадцатеричные цифры в поле, это означает, что шрифт вашего терминала не охватывает этот символ. Шестнадцатеричное обозначение говорит вам, какой это символ: U+001E, который находится в диапазоне управляющих символов - 1E - ^^ (т.е. Ctrl-^).

Если вы хотите заменить его пробелом, вы можете использовать

sed -e 's/\x1E/ /g' <input-file >output-file

или же

tr '\036' <input-file >output-file

(tr принимает только восьмеричное).

0

Чтобы заменить LATIN CAPITAL LETTER D на CARON, сделайте следующее:

$ sed 's/Ď/ /g'
0

Используя этот ответ в качестве ссылки:

CHARS=$(python -c 'print u"\u001E".encode("utf8")')
sed 's/['"$CHARS"']//g' < /tmp/utf8_input.txt > /tmp/ascii_output.txt

Я не уверен, какой у тебя характер, хотя ... На скриншоте показано, что это 0x001e, но вы упомянули 0x010e. Что бы это ни было, вы можете просто изменить приведенный выше скрипт по мере необходимости.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .