我得到了一个命令,该命令在变量中输出以逗号分隔的autosys作业列表$all_jobs
:
box=box-of-jobs;all_jobs=$(jobscout -box $box | egrep "^\w+" | tr '\n' ',' | sed s/.$//);
我想为列表中的每个项目调用sendevent命令:
sendevent -verbose -S NYT -E JOB_OFF_HOLD -J $job --owner me
因此,例如,如果$all_jobs
评估了job1,job2,job3
我想打电话
sendevent -verbose -S NYT -E JOB_OFF_HOLD -J job3 --owner me
sendevent -verbose -S NYT -E JOB_OFF_HOLD -J job2 --owner me
sendevent -verbose -S NYT -E JOB_OFF_HOLD -J job1 --owner me
我确定我可以编写一个ksh脚本来循环,但是我知道使用awk / sed可以经常更快地编写这些内容,因为我对它们都不很熟悉,所以这超出了我的技巧。我正在使用ksh(而不是bsh)。
如果您确定逗号之间的字段不包含任何空格,则可以执行以下操作:
for job in $(echo $all_jobs | tr "," " "); do
sendevent -verbose -S NYT -E JOB_OFF_HOLD -J "$job" --owner me
done
如果您需要更强大的功能,请查看在Unix下处理CSV文件所需的工具。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句