gpt4 book ai didi

bash 打印转义文件内容

转载 作者:行者123 更新时间:2023-11-29 09:08:52 27 4
gpt4 key购买 nike

我正在尝试使用转义双引号打印文件内容。

# 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 格式说明符一起使用,但遇到了删除尾随空格的问题。

最佳答案

只执行您明确要求的两个文字转换:

IFS= read -r -d '' content <file
content=${content//'"'/'\"'/}
content=${content//$'\n'/'\n'}
echo "file contents: $content"

也就是说,如果您试图将任意内容表示为 JSON 字符串,让完全兼容的 JSON 解析器/生成器来完成繁重的工作:

IFS= read -r -d '' content <file
echo "file contents: $(jq -n --arg content "$content" '$content')"

...或者,甚至更好(甚至支持 bash 无法将其内容存储为字符串的文件),让 jq 直接从输入文件中读取:

echo "file contents: $(jq -Rs . <file)"

关于bash 打印转义文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com