You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含十六进制转义的输出转换为Unicode并保留换行符?

解决保留换行符的十六进制转义字符转换问题

你可以通过以下几种管道命令实现需求:

方法1:使用while read循环配合printf

cat demo | while read -r line; do printf "%b\n" "$line"; done
  • read -r line:逐行读取文件内容,-r参数避免反斜杠被当作转义符提前处理
  • printf "%b\n" "$line":%b格式符会解析字符串中的十六进制转义序列(比如\x22),\n确保每行输出后保留换行

方法2:使用awk命令

cat demo | awk '{printf "%b\n", $0}'
  • awk默认会逐行处理输入内容,$0代表当前整行文本
  • 同样通过printf "%b\n"解析转义序列并保留换行

为什么原命令echo $(cat demo)不行?

$(cat demo)会执行命令替换,将文件中的所有换行符替换为空格,再传递给echo输出,所以最终结果是空格分隔的一行内容。而上面的两种方法都是逐行处理输入,既完成了转义解析,又保留了原始的换行结构。

内容的提问来源于stack exchange,提问作者gayavat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:45:27