繁体   English   中英

Bash脚本横穿目录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM