Teo*_*Teo 4 shell sed shell-script
我在我的git仓库项目的结构,并想在混帐运行的bash shell命令替换所有>带>\n(LF)。我尝试了以下命令:
find . -name '*.xml' -exec sh -c 'sed 's/>/>\n/g "$0"' '{}' ';'
Run Code Online (Sandbox Code Playgroud)
意思是在我的项目中找到的所有 xml 文件中替换上述集合(>with >\n)。
我不知道我做错了什么,因为我用光标 ">" 进入编辑器......(只是在编辑器中让它变得漂亮 - 例如 Note++ 使用 XMLTools 插件很容易,但我希望我的文件被更改为每个 XML 标签后的 LF)
当我只为文件编写命令时 - 它工作得很好:
$ sed 's/>/>\n/g' MyFile.xml
Run Code Online (Sandbox Code Playgroud)
Gil*_*not 10
使用它是一个坏主意sed,您似乎要做的是格式化XML 文件。
对于任何 XML 解析器来说,这都是一项简单的任务,例如:
xmllint --format file.xml
Run Code Online (Sandbox Code Playgroud)
此实用程序通常默认安装在 GNU Linux 上,或随包一起安装 libxml2
或者
xmlstarlet format file.xml
Run Code Online (Sandbox Code Playgroud)