При чтении файла журнала Windows в терминале Linux я вижу странный символ «001E»
Как я могу заменить его пробелом? Может быть, что-то вроде sed -e 's/010e/ /'
При чтении файла журнала Windows в терминале Linux я вижу странный символ «001E»
Как я могу заменить его пробелом? Может быть, что-то вроде sed -e 's/010e/ /'
Если вы видите эти четыре шестнадцатеричные цифры в поле, это означает, что шрифт вашего терминала не охватывает этот символ. Шестнадцатеричное обозначение говорит вам, какой это символ: U+001E, который находится в диапазоне управляющих символов - 1E - ^^
(т.е. Ctrl-^
).
Если вы хотите заменить его пробелом, вы можете использовать
sed -e 's/\x1E/ /g' <input-file >output-file
или же
tr '\036' <input-file >output-file
(tr
принимает только восьмеричное).
Чтобы заменить LATIN CAPITAL LETTER D на CARON, сделайте следующее:
$ sed 's/Ď/ /g'
Используя этот ответ в качестве ссылки:
CHARS=$(python -c 'print u"\u001E".encode("utf8")')
sed 's/['"$CHARS"']//g' < /tmp/utf8_input.txt > /tmp/ascii_output.txt
Я не уверен, какой у тебя характер, хотя ... На скриншоте показано, что это 0x001e, но вы упомянули 0x010e. Что бы это ни было, вы можете просто изменить приведенный выше скрипт по мере необходимости.