我试图打印带有转义双引号的文件内容。
我试图使用printf以%q格式说明符输出内容,但遇到了它会删除尾随空格的问题。
# read file contents from ${filename}
# - escape double quotes
# - represent newlines as '\n'
# print the result
echo "my file contents: \"${out}\""
那么举个例子,如果我的文件是
<empty line>
console.log("hello, world");
<empty line>
应该打印
my file contents: "\nconsole.log(\"hello, world\");\n"
我试图使用printf以%q格式说明符输出内容,但遇到了它会删除尾随空格的问题。
printf %q
的--我向你保证,它本身并不会删除尾随空格。然而,如果你在命令替换中运行它(或以这种方式运行cat
),情况就不同了... - Charles Duffy$(cat file)
本身会删除尾随的换行符。相反,请尝试:IFS= read -r -d '' content <file; printf '%q\n' "$content"
- Charles Duffy