我的 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