繁体   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