在一行命令中将多行写入文件

Ram*_*o19 10 command-line cat

我有一个要使用命令行创建的文件,使用 cat 工具(或类似工具)。有问题的文本是多行的,并且采用某种格式(yaml)-我想保持这种格式。

有没有办法使用一行命令写入文件?

小智 14

$ cat > test.yaml << EOF
Line 1
Line 2
Line 3
EOF

$ cat test.yaml
Run Code Online (Sandbox Code Playgroud)

>符号是指创建一个test.yaml文件

  • here-document 分隔符,`EOF`,可以是 _any_ 一段字符串。`EOT` 或 `MY_DOCUMENT` 的工作方式完全相同。 (3认同)

Hau*_*ing 5

cat <<\EOT >target_file
foo
    bar
        baz
EOT
Run Code Online (Sandbox Code Playgroud)

  • @cas:在此处文档分隔符单词中引用一个或多个字符会影响此处文档的解释。*对于上面的示例数据,它不执行任何操作,*因为它不包含任何美元符号或其他特殊字符。 (4认同)
  • EOT 之前的反斜杠不是必需的。它什么也不做——转义的 E 仍然是 E。 (3认同)