0

我有一堆目录,在每个目录中我都有一堆子目录,在每个子目录中我有 1 个文件命名x1并且可能也有y1 z1

我想为每个目录创建一个 shell 脚本,它遍历子目录并将所有x1s 连接到一个文件以及所有y1s 和所有z1s。

我努力了

cat ./*/*.x1 >test

我不知道它如何与每个

4

1 回答 1

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
于 2012-08-06T09:16:13.327 回答