Как написать символы не ASCII, используя echo? - PullRequest
27 голосов
/ 18 марта 2009

Как мне написать не- ASCII символы, используя echo? Есть ли escape-последовательность, такая как \012 или что-то подобное?

Я хочу добавить символы ASCII в файл, используя:

echo ?? >> file

Ответы [ 4 ]

30 голосов
/ 18 марта 2009

Если вы заботитесь о переносимости, вы сбросите echo и будете использовать printf (1) :

printf '\012'
25 голосов
/ 18 марта 2009

Использование

echo -e "\012"
12 голосов
/ 16 января 2014

На моем терминале,

printf '\012' >>output.txt

работает как для восьмеричного представления символа ascii, так и для соответствующего шестнадцатеричного числа:

printf '\xA' >>output.txt

Команда

echo -en '\012' >>output.txt

однако, не работает должным образом. Только шестнадцатеричные числа работают с echo -e. -N удаляет дополнительный символ новой строки по умолчанию из echo.

1 голос
/ 20 мая 2016

Я использовал не-ASCII для обозначения Unicode, по крайней мере, в моем случае, но printf "\x##" было недостаточно для моего 2-байтового решения, поэтому я использовал вместо этого немного другой синтаксис:

> printf "\u25ba"
►
...