![没有 LF 的 XML 希望在 shell 中使用 sed 命令使其变得漂亮](https://linux22.com/image/13297/%E6%B2%A1%E6%9C%89%20LF%20%E7%9A%84%20XML%20%E5%B8%8C%E6%9C%9B%E5%9C%A8%20shell%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20sed%20%E5%91%BD%E4%BB%A4%E4%BD%BF%E5%85%B6%E5%8F%98%E5%BE%97%E6%BC%82%E4%BA%AE.png)
我的 git 存储库中有一个项目的结构,并且想在 git bash 中运行 shell 命令以将所有>
内容替换为>\n
(LF)。我尝试了以下命令:
find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'
意思是在我的项目中找到的所有 xml 文件中替换上述集合(>
with )。>\n
我不知道我做错了什么,因为我用光标 ">"... 进入编辑器(只是在编辑器中使其变得漂亮 - 例如,Note++ 使用 XMLTools 插件很容易,但我希望将我的文件更改为包含它们是每个 XML 标记后面的 LF)
当我只为文件编写命令时 - 它工作得很好:
$ sed 's/>/>\n/g' MyFile.xml
答案1
为此使用是一个坏主意sed
,你似乎要做的是格式XML 文件。
对于任何 XML 解析器来说这都是一个简单的任务,例如:
xmllint --format file.xml
该实用程序通常默认安装在 GNU Linux 上,或者与软件包一起安装libxml2
或者
xmlstarlet format file.xml