[英]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.