如何将带有符号 [)"$&...ect 的长行(如代码)附加到现有文件?

如何将带有符号 [)"$&...ect 的长行(如代码)附加到现有文件?

在尝试了网站上共享的所有代码但没有成功后,我问这个问题,

  1. 我有一个包含很长文本的文件,所有文本仅在第一行

  2. 我想将带有符号的长行附加到该文件的末尾,我的行如下所示:

    [{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
    

\n我想附加包含诸如和 之类的符号的行[{]"...。到第一行末尾的现有文件。

答案1

由于您的行非常复杂并且包含许多转义字符,因此我建议使用 Bash 等某些 shell 支持的 printf "%q" 。您可以使用以下简短脚本:

#!/usr/bin/env bash

read -r
printf "%q\n" "$REPLY"

运行它并粘贴您的行:

$ ./printf-q.sh
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
\[\{\\n\"code\":\"final\ .net.wifi.WifiManager\ wifi\ \\u003d\\n\ \"typeName\":\"\"\,\"palette\":\"9\"\,\"type\":\"\ \"\,\"spec\":\"Enable\ WiFi\"\}\]\'

最后一行以您可以在 shell 中使用的形式显示,无需添加额外的转义字符,如下所示:

$ echo \[\{\\n\"code\":\"final\ .net.wifi.WifiManager\ wifi\ \\u003d\\n\ \"typeName\":\"\"\,\"palette\":\"9\"\,\"type\":\"\ \"\,\"spec\":\"Enable\ WiFi\"\}\]\' >> FILE
$ cat FILE
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'

答案2

使用此处引用的文档:

cat >>file <<'END'
[{\n"code":"final .net.wifi.WifiManager wifi \u003d\n "typeName":"","palette":"9","type":" ","spec":"Enable WiFi"}]'
END

这会将此处文档的内容附加到名为 的文件的末尾file。由于此处文档被引用,从首字母周围的单引号可以明显看出END,shell 不会进行任何扩展或文件名通配或其他数据解释。

相关内容