用于输入多个目录并执行命令的命令行bash

时间:2015-02-04 15:47:20

标签: linux bash command-line do-loops

我是这个网站的新手(以及编程,或多或少),但我希望你能提供帮助。

我有许多名为3K,4K,5K等的目录。在每个目录中,我有12个名为v1到v12的子目录,每个子目录包含一个名为OUTCAR的文件。我正在尝试编写一个bash命令,允许我进入每个子目录并从OUTCAR收集数据。

当我单独输入每个子目录时,该功能没有问题。

我正在使用

  

for v {1..12}中的文件;做grep“key_string”OUTCAR | awk'{print(relevant_stuff)}'> output.dat;完成

来自包含v {1..12}子目录的* K罚款。

但是,我收到一个错误,告诉我每个v {1..12}都不存在OUTCAR。我知道它确实如此,所以我猜我没有正确地将命令指向cd进入每个子目录。有什么提示吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

最好在顶级目录中使用这个find命令,这些命令存在这些子目录:

find . -type d -name 'v[1-9][[1-9]' \
    -exec awk '/key_string/ {print FILENAME ":" $0}' {}/* >> output.dat \;
相关问题