use*_*545 5 unix bash grep loops
我有很多slurm工作可以生成以下格式的标准输出和错误文件:
<string>.<string>.<string>.<job_id>.ERR
Run Code Online (Sandbox Code Playgroud)
其中job_id是 分配的作业 ID slurm。
因此,要获取这些工作 ID,我可以:
cut -f 4 -d "." *.ERR
Run Code Online (Sandbox Code Playgroud)
我想将此命令的输出通过管道传输到将运行的循环sacct -j <job_id>以及grep哪些作业失败,使用:
sacct -j <job_id> | grep "FAILED"
Run Code Online (Sandbox Code Playgroud)
这可以通过一个命令完成吗?
您可以使用 Bashread循环,并进行进程替换:
while read -r job_id; do
sacct -j "$job_id" | grep "FAILED"
done < <(cut -f4 -d. *.ERR)
Run Code Online (Sandbox Code Playgroud)
您还可以使用xargs,它更简洁:
cut -f4 -d. *.ERR | xargs -n 1 sacct -j | grep "FAILED"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |