Как написать символы не ASCII, используя echo?
-
19-08-2019 - |
Вопрос
Как мне написать не ASCII символы с помощью echo? Есть ли escape-последовательность, например \012
или что-то в этом роде?
Я хочу добавить символы ASCII в файл, используя:
echo ?? >> file
Решение
Использовать
echo -e "\012"
Другие советы
Если вы заботитесь о переносимости, вы отбросите echo и будете использовать printf (1) :
printf '\012'
На моем терминале
printf '\012' >>output.txt
работает как для восьмеричного представления символа ascii, так и для соответствующего шестнадцатеричного числа:
printf '\xA' >>output.txt
Команда
echo -en '\012' >>output.txt
однако, не работает должным образом. Только шестнадцатеричные числа работают с echo -e. -N удаляет дополнительный символ новой строки по умолчанию из echo.
Я использовал не-ASCII для обозначения Unicode, по крайней мере, в моем случае, но printf "\x##"
было недостаточно для моего 2-байтового решения, поэтому вместо этого я использовал немного другой синтаксис:
> printf "\u25ba"
►