[英]Bash script to transverse a directory
我有一个包含XML文件和其他目录的目录。 所有其他目录都有XML文件和子目录等。
我需要编写一个脚本(可能是bash),该脚本的每个目录都运行java XMLBeautifier directory
并且由于我在bash脚本编写方面的技能有点垃圾,因此,我将非常感谢您的帮助。
如果必须获取目录,则可以使用:
$ find . -type d
就像这样通过管道将其传送到您的程序:
$ find . -type d | xargs java XMLBeautifier
另一种方法是使用find
命令获取所有文件,并将其通过管道传输到您的程序,如下所示:
$ find . -name "*.xml" | xargs java XMLBeautifier
这将从当前目录中并通过所有子目录递归地获取所有.xml
文件。 然后将它们与xargs
java XMLBeautifier
交给java XMLBeautifier
。
查找是一个很棒的工具...但是,如果不确定文件名,但是对这些xml文件包含的内容有模糊的了解,则可以使用grep。
例如,如果您确定所有xml文件都包含短语“正确的xml文件”(您可以将该短语更改为您认为合适的短语),则在命令行中运行以下命令...
grep -IRw "correct xml file" /path/to/directory/*
-I选项搜索文件并在匹配模式时返回文件名
-R选项递归到达您的目录
-w确保给出的模式在整体上匹配,而不是单个单词匹配
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.