首页 > 解决方案 > 在 for 循环中使用预处理的标准输出,而不创建要从中读取的文件

问题描述

_id                      state    flag  pro prio attempt user   enqueued            age                 runtime     worker name
------------------------ -------- ---- ---- ---- ------- ------ ------------------- ------------------- ----------- ------ --------------------------------
5ef9b05ef491ab1b5b00f356 error    ....   0% 000    1/  1 xxx  2020-06-29 11:11:58 0:16:19             0:01:35            Loader
5ef9b06e9879a928038cce45 error    ....   0% 000    1/  1 xxx  2020-06-29 11:12:14 0:16:03             0:01:21            Loader

我从负责数据管道的系统接收此输出。应使用单个命令重新启动具有“错误”状态的作业。该命令看起来像这样:coco --restart 5ef9b05ef491ab1b5b00f356,所以这意味着我需要所有 _id´s。

我已经来了这么远:

coco -l | cut -c1-25 | tail -2

5ef9b05ef491ab1b5b00f356 
5ef9b06e9879a928038cce45

这给了我正确的 ID。我可以将 id 写入文件,然后逐行读取它们,但仅从中获取 idsdout会好得多。可以将其通过管道传输到 for 循环中吗?喜欢这个吗?

coco -l | cut -c1-25 | tail -2 | {for i in sdout; do echo "$i"}

标签: linuxshellcommand-line

解决方案


推荐阅读