我使用以下ssh命令获取id列表。现在我想
在ID列表中只获取大于给定数字的ID;让我们说" 231219"在这种情况下。我该如何加入?
我有一个本地文件" ids_ignore.txt&#34 ;;我们放在此列表中的anyid应该被命令忽略..
可以执行以上操作吗?
ssh -p 29418 company.com gerrit query --commit-message --files --current-patch-set \
status:open project:platform/code branch:master |
grep refs | cut -f4 -d'/'
输出: -
231222
231221
231220
231219
230084
229092
228673
228635
227877
227759
226138
226118
225817
225815
225246
223554
223527
223452
223447
226137
答案 0 :(得分:1)
... | awk '$1 > max' max=8888 | grep -v -F -f ids_ignore.txt
或者,如果你想用awk做这一切:
... | awk 'NR==FNR{ no[$1]++ }
NR!=FNR && $1 > max && ! no[$1]' max=NNN ids_ignore.txt -
答案 1 :(得分:0)
cut
无法对输入字段进行数字比较,它只是一个简单的字段提取工具。 awk
可以完成grep和cut的工作:
ssh -p 29418 company.com gerrit ... |
awk -F/ -v min=231219 '
NR == FNR {ignore[$1]; next}
/refs/ && $4>min && !($4 in ignore) {print $4}
' ids_ignore.txt -
尾随 - 在awk命令结束时很重要:它告诉awk在读取ids_ignore文件后从stdin读取。