繁体   English   中英

在bash和xargs在管道后在nlines上循环

[英]in bash and xargs loop on nlines after pipe

小组,我下面的命令,抓紧所有有问题的吊舱,然后将它们一个接一个地删除。

但是我只想使用命令输出的前10行。

kubectl get pods --all-namespaces | grep -i -e Evict -e Error | 
    awk -F ' ' '{print $1, $2, $4}' | 
    xargs -l1 -- sh -c 'kubectl delete pod "$2" -n "$1"' --

上面的命令将删除所有行,但我只想对前10行进行删除。 有什么提示吗?

我试过了

kubectl get pods --all-namespaces | grep -i -e Evict -e Error | 
    awk -F ' ' '{print $1, $2, $4}' | for run{1..10}; do 
        xargs -l1 -- sh -c 'kubectl delete pod "$2" -n "$1" ' --; 
    done

一次,我知道这一点,我可以将其用于任何命令节点或Pod。

在传递给xargs之前,可以使用head获取输出的前10行。 使用-n选项指定多少行(在这种情况下,为head -n10

只是管道之前xargs ,插入以下内容: | head -n10 | | head -n10 | 这将过滤除先前输出的前十行以外的所有内容。

尝试这个:

kubectl get pods --all-namespaces | grep -i -e Evict -e Error | awk -F ' ' '{print $1, $2, $4}' | head -n10 | xargs -l1 -- sh -c 'kubectl delete pod "$2" -n "$1"' --

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM