Вопрос

Как мне написать не 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"
►
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top