我有一系列待处理的工作在队列中,
$ atq
8 Mon Oct 29 13:21:00 2018
5 Mon Oct 29 10:36:00 2018
15 Mon Oct 29 13:31:00 2018
4 Mon Oct 29 10:35:00 2018
18 Mon Oct 29 15:55:00 2018
3 Mon Oct 29 10:31:00 2018
16 Mon Oct 29 15:54:00 2018
11 Mon Oct 29 13:24:00 2018
12 Mon Oct 29 13:24:00 2018
17 Mon Oct 29 15:53:00 2018
10 Mon Oct 29 13:23:00 2018
19 Tue Oct 30 15:43:00 2018
2 Mon Oct 29 07:41:00 2018
6 Mon Oct 29 10:41:00 2018
7 Mon Oct 29 13:20:00 2018
9 Mon Oct 29 13:22:00 2018
Run Code Online (Sandbox Code Playgroud)
并计划在 10 月 29 日移除他们的工作。幸运的是,atrm 可以移除多个工作
atrm 8 5 15 4
Run Code Online (Sandbox Code Playgroud)
尽管如此,迭代可能是更好的解决方案,
$ atq | grep "Oct 29"
18 Mon Oct 29 15:55:00 2018
3 Mon Oct 29 10:31:00 2018
16 Mon Oct 29 15:54:00 2018
11 Mon Oct 29 13:24:00 2018
12 Mon Oct 29 13:24:00 2018
17 Mon Oct 29 15:53:00 2018
10 Mon Oct 29 13:23:00 2018
2 Mon Oct 29 07:41:00 2018
6 Mon Oct 29 10:41:00 2018
7 Mon Oct 29 13:20:00 2018
9 Mon Oct 29 13:22:00 2018
Run Code Online (Sandbox Code Playgroud)
我怎样才能选择工作编号的第一个字段以便迭代它们?
atq | awk '/Oct 29/ { print $1 }'
Run Code Online (Sandbox Code Playgroud)
这将打印包含字符串的作业的作业 ID Oct 29。
什么awk代码正在做的是来匹配每个输入线的给定的正则表达式,而对于行匹配它打印就行(作业ID)第一空格分隔的字段。
将此短管道的结果传递给xargs atrm将删除作业:
atq | awk '/Oct 29/ { print $1 }' | xargs atrm
Run Code Online (Sandbox Code Playgroud)
该xargs实用程序从其标准输入流中读取,并使用 read 参数执行给定的实用程序。如果有很多参数(在这种情况下可能不是),xargs可以多次执行该实用程序。
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |