用于遍历目录的Bash脚本

时间:2011-10-07 16:38:42

标签: bash unix

我有一个包含XML文件和其他目录的目录。所有其他目录都有XML文件和子目录等。

我需要编写一个脚本(可能是bash),每个目录运行java XMLBeautifier directory,因为我在bash脚本编写方面的技巧有点垃圾,我真的很感激一些帮助。

2 个答案:

答案 0 :(得分:4)

如果必须获取目录,可以使用:

$ find . -type d

只需将此管道传输到您的程序:

$ find . -type d | xargs java XMLBeautifier

另一种方法将获取find的所有文件并将其传递给您的程序,如下所示:

$ find . -name "*.xml" | xargs java XMLBeautifier

这将从当前目录中获取所有.xml个文件,并递归遍历所有子目录。然后使用xargsjava XMLBeautifier逐个交出它们。

答案 1 :(得分:1)

查找是一个很棒的工具...但是,如果您不确定文件名但对这些xml文件包含的内容有一个模糊的概念,那么您可以使用grep。

例如,如果您确定所有xml文件都包含短语“正确的xml文件”(您可以将此短语更改为您认为合适的),请在命令行运行以下内容...

grep -IRw "correct xml file" /path/to/directory/*

-I选项搜索文件并在匹配模式时返回文件名 -R选项以递归方式到达您的目录 -w确保给定的模式在整体上匹配而不是单独的单词

希望这有帮助!