awk能力削减能力
我使用下面的ssh命令来获取id列表。现在我想awk能力削减能力,awk,grep,cut,Awk,Grep,Cut,我使用下面的ssh命令来获取id列表。现在我想 仅获取大于ID列表中给定数字的ID;在这种情况下,让我们说“231219”。我怎样才能把它结合起来 我有一个本地文件“ids_ignore.txt”;命令应忽略我们放入此列表中的任何ID awk或cut能做上述工作吗 ssh -p 29418 company.com gerrit query --commit-message --files --current-patch-set \ status:open project:platform
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
或者,如果您想用awk完成所有工作:
... | awk 'NR==FNR{ no[$1]++ }
NR!=FNR && $1 > max && ! no[$1]' max=NNN ids_ignore.txt -
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\u ignore文件后从stdin读取。您的问题不清楚,添加来自
ssh
命令的输出。@sudo\u O-ssh命令的输出已经给出了如果这是来自ssh命令的输出,那么为什么要搜索refs
并进行剪切,因为这是一个数字列表?我相信您发布的是您的预期输出。我仍然看到ssh命令打印的ID,即使是ids_ignore.txtI treid中的ID,也可以通过上述两种方式打印。我仍然看到ids_ignore.txt中显示的数字是打印出来的
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 -