将Bash脚本转换为目录
我有一个包含XML文件和其他目录的目录。所有其他目录都有XML文件和子目录等将Bash脚本转换为目录,bash,unix,Bash,Unix,我有一个包含XML文件和其他目录的目录。所有其他目录都有XML文件和子目录等 我需要为bash编写一个脚本,可能每个目录都运行java XMLBeautifier目录,由于我在bash脚本编写方面的技能有点垃圾,我非常感谢您的帮助。如果您必须获取目录,您可以使用: $ find . -type d 只需通过以下方式将其传输到您的程序: $ find . -type d | xargs java XMLBeautifier $ find . -name "*.xml" | xargs java
我需要为bash编写一个脚本,可能每个目录都运行java XMLBeautifier目录,由于我在bash脚本编写方面的技能有点垃圾,我非常感谢您的帮助。如果您必须获取目录,您可以使用:
$ find . -type d
只需通过以下方式将其传输到您的程序:
$ find . -type d | xargs java XMLBeautifier
$ find . -name "*.xml" | xargs java XMLBeautifier
另一种方法是使用find和pipe将所有文件发送到您的程序,如下所示:
$ find . -type d | xargs java XMLBeautifier
$ find . -name "*.xml" | xargs java XMLBeautifier
这将从当前目录中获取所有.xml文件,并递归地遍历所有子目录。然后用xargs将它们一个接一个地交给java XMLBeautifier。Find是一个很棒的工具。。。但是,如果您不确定文件名,但对这些xml文件包含的内容有模糊的概念,那么您可以使用grep 例如,如果您确实知道所有xml文件都包含一个短语正确的xml文件,则可以将该短语更改为您认为合适的短语,然后在命令行上运行以下命令
grep -IRw "correct xml file" /path/to/directory/*
-I选项搜索文件并在模式匹配时返回文件名
-R选项递归地到达您的目录
-w确保给定的模式整体匹配,而不是单个单词
希望这有帮助 奇怪的是,并不是所有的XML文件都有.XML扩展名,但是所有的文件都是XMLsI刚刚发布的。快告诉我:@Michael,好吧,你可以换任何适合你的。例如,如果所有文件都在目录结构下,那么只需查找-name*如果美化器只接受一个参数,例如目录名,则使用上面的第二种方法,但在xargs调用中添加-n1。