【问题标题】:How to append one file that includes '< >' to another in bash script如何在bash脚本中将一个包含'< >'的文件附加到另一个文件
【发布时间】:2014-11-16 20:20:27
【问题描述】:

有没有办法在 bash 脚本中将一个文件附加到另一个文件而不会抱怨 &lt; &gt; 字符?我正在尝试将包含一些 xml 的文件附加到另一个文件,但它不断抛出

syntax error near unexpected token 'newline'

'&lt;myTag&gt;'

操作简单myFile.txt &gt;&gt; otherFile.xml

我知道它们是占位符字符,但我无法找到任何结果让它们被解释为文字

【问题讨论】:

  • @Nemo 非常正确,我不知道为什么我认为&gt;&gt; 会是一个例外

标签: xml linux bash shell unix


【解决方案1】:

你需要使用cat:

cat myfile.txt >>otherFile.xml

否则,您将尝试将myfile.txt 作为可执行文件运行;该问题与嵌入在文件内容中的箭头括号字符无关。


顺便说一句,XML 文档只能合法地包含一个根,并且不允许在该根之外包含内容,因此您的新文件可能不是有效的 XML。

【讨论】:

  • 是的,我意识到,我有一些用于删除结束标记、附加 xml 然后读取它的脚本。这是一个很棒的脚本,但除了我自己之外没有其他人必须看到它,所以我可以接受。如果您对在 bash 中处理 xml 有任何好的建议,我愿意接受建议。这是一个个人脚本,所以我不必担心其他用户。
  • 应该有多余的空间吗? Like cat myfile.txt &gt;&gt; otherFile.xml 类似于 stackoverflow.com/a/13181820/3767980 的语法
  • @sreya,我非常喜欢 XMLStarlet -- xmlstar.sourceforge.net -- 作为从 bash 操作 XML 文件的工具包。
  • @PhysicalChemist,这是风格问题,人们的意见不同。就个人而言,我认为额外的空格很糟糕。
  • @sreya, ...值得注意的是,XMLStarlet 包含 pyxp2x 命令,它们将 XML 转换为非常易于解析的面向行的格式。
猜你喜欢
  • 1970-01-01
  • 2018-02-07
  • 2018-03-07
  • 1970-01-01
  • 2019-08-15
  • 2011-11-24
  • 2017-04-06
  • 1970-01-01
相关资源
最近更新 更多