linux - 对不同文件夹中的文件执行 bash 脚本

标签 linux bash

我在不同文件夹中有多个同名文件。我想对所有这些并行执行我的 bash 脚本。是否可以将它们放在单独的 .txt 文件或相同的 bash 脚本中并执行?即,

所有.tab文件

path/to/set1/my.bam
path/to/set2/my.bam
path/to/set3/my.bam

和一个 bash,

#!/usr/bin/env bash
#$ -q cluster_name
#$ -cwd
#$ -N job_name
#$ -e /path/to/log
#$ -o /path/to/log
#$ -l job_mem=16G
#$ -pe serial 4

PICARD="path/to/picard"
BAM="/path/to/all.tab"

echo "validating bam file"

$PICARD/picard.jar ValidateSamFile I=$BAM MODE=SUMMARY

因此它将启动多个作业以并行排队并在各自的文件夹中写入日志输出或其他输出文件。 如果有任何其他方式,我感谢任何帮助。 编辑:我将其调用为:qsub ./test.sh

最佳答案

您可以使用 find 命令以便首先“查找”目录结构中具有该给定名称的所有文件。

然后你可以使用 xargs 使用其“-P”选项以并行在查找的输出上运行命令。

参见 here了解更多详情。

关于linux - 对不同文件夹中的文件执行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782013/

相关文章:

c - 如何用 ALSA 播放短音

linux - 何时以及如何在 shell 脚本中使用嵌套命令替换

bash - 测试 glob 在 Bash 中是否有任何匹配项

python - 从 uwsgi 调用子进程 sudo

linux - TTY 输入队列太慢无法返回数据

c++ - sed/regex - 更新具有范围问题的源文件

linux - 来 self 廉价的中国 IP 网络摄像头的 JPEG 流是什么格式?

bash - 简单的 bash 和 curl 检查 Web 服务器上是否存在文件?

bash - 在 bash 中四舍五入

android - 使用命令行启动 avd 后更改 Android 模拟器 http 代理