如何迭代地连接子目录中的文件

时间:2012-08-06 08:47:47

标签: shell foreach

我有一堆目录,在每个目录中我都有一堆子目录,在每个子目录中我有1个名为x1的文件,可能y1 { {1}}也是。

我希望有一个shell脚本,针对每个目录,遍历子目录并将所有z1连接到一个文件以及所有x1和所有y1秒。

我试过了

z1

我不知道它是如何为每个

工作的

1 个答案:

答案 0 :(得分:0)

如果您正在使用zshfor循环工作:

for dir in *(/); do
  cat "$dir"/*.x1 > "$dir"/combined.x1
  [[ -n "$dir"/*.y1 ]] && cat "$dir"/*.y1 > "$dir"/combined.y1
  [[ -n "$dir"/*.z1 ]] && cat "$di"r/*.z1 > "$dir"/combined.z1
done

更新

对于bash,您似乎只需要更新dir模式:

for dir in */; do
  cat "$dir"/*.x1 > "$dir"/combined.x1
  [[ -n "$dir"/*.y1 ]] && cat "$dir"/*.y1 > "$dir"/combined.y1
  [[ -n "$dir"/*.z1 ]] && cat "$di"r/*.z1 > "$dir"/combined.z1
done