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

时间:2018-12-18 00:48:38

标签: bash xargs

团队, 我下面的命令,抓紧所有有问题的豆荚,然后将它们一个接一个地删除。

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

$CPU

以上命令将删除所有行,但我只想对前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"' --

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

1 个答案:

答案 0 :(得分:1)

在传递给xargs之前,可以使用head获取前10行输出。使用-n选项指定多少行(在本例中为head -n10

在管道输送到xargs之前,请插入以下内容:| 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"' --