簡體   English   中英

如何使用 echo 編寫非 ASCII 字符?

[英]How do I write non-ASCII characters using echo?

如何使用 echo 編寫非ASCII字符? 是否有轉義序列,例如\\012或類似的東西?

我想使用以下方法將 ASCII 字符附加到文件中:

echo ?? >> file

如果您關心可移植性,您將刪除並使用

printf '\012'

使用

echo -e "\012"

在我的終端上,

printf '\012' >>output.txt

適用於 ascii 字符的八進制表示和相應的十六進制:

printf '\xA' >>output.txt

命令

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

但是,不能正常工作。 似乎只有十六進制可以與 echo -e 一起使用。 -n 從 echo 中刪除默認的額外換行符。

您可以將 ANSI-C Quoting 與echo

echo $'\012' # octal

echo $'\x0a' # hex

我用非 ASCII 來表示 Unicode,至少在我的情況下,但是printf "\\x##"對於我的 2 字節解決方案來說還不夠,所以我使用了這個稍微不同的語法:

> printf "\u25ba"
►

簡介

echo -e 'toto\010\010ti'   # OUTPUTS: toti
echo -e '\x41'             # OUTPUTS: A
echo -e '\u03B1'           # OUTPUTS: α
echo -e '\U1F413 <= \U1F1EB\U1F1F7' # OUTPUTS 🐓 <= 🇫🇷

文件

man bash > /BUILTIN/ > /^ *echo/

              \0nnn  the eight-bit character whose value is the octal value nnn (zero  to
                     three octal digits)
              \xHH   the eight-bit character whose value is the hexadecimal value HH (one
                     or two hex digits)
              \uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal
                     value HHHH (one to four hex digits)
              \UHHHHHHHH
                     the Unicode (ISO/IEC 10646) character whose value is the hexadecimal
                     value HHHHHHHH (one to eight hex digits)

關聯

  • Ascii 列表: man ascii
  • Unicode 列表:StackOverflow 上的腳本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM