in bash 和 xargs 在管道后的 nlines 上循环
in bash and xargs loop on nlines after pipe
团队,
我的以下命令,对任何 pods 有问题的问题进行 greps,然后将它们一一删除。
但我只想使用命令输出的前 10 行。
kubectl get pods --all-namespaces | grep -i -e Evict -e Error |
awk -F ' ' '{print , , }' |
xargs -l1 -- sh -c 'kubectl delete pod "" -n ""' --
以上命令正在删除所有行,但我只想删除前 10 行。有什么提示吗?
我试过了
kubectl get pods --all-namespaces | grep -i -e Evict -e Error |
awk -F ' ' '{print , , }' | for run{1..10}; do
xargs -l1 -- sh -c 'kubectl delete pod "" -n "" ' --;
done
曾经,我知道这一点,我可以将它用于任何命令节点或 pod。
您可以使用 head
在传递给 xargs 之前获取前 10 行输出。使用 -n
选项指定多少行(在本例中,head -n10
)
就在传送到 xargs
之前,插入以下内容:| head -n10 |
。这将过滤前面输出的前十行以外的所有内容。
试试这个:
kubectl get pods --all-namespaces | grep -i -e Evict -e Error | awk -F ' ' '{print , , }' | head -n10 | xargs -l1 -- sh -c 'kubectl delete pod "" -n ""' --
团队, 我的以下命令,对任何 pods 有问题的问题进行 greps,然后将它们一一删除。
但我只想使用命令输出的前 10 行。
kubectl get pods --all-namespaces | grep -i -e Evict -e Error |
awk -F ' ' '{print , , }' |
xargs -l1 -- sh -c 'kubectl delete pod "" -n ""' --
以上命令正在删除所有行,但我只想删除前 10 行。有什么提示吗?
我试过了
kubectl get pods --all-namespaces | grep -i -e Evict -e Error |
awk -F ' ' '{print , , }' | for run{1..10}; do
xargs -l1 -- sh -c 'kubectl delete pod "" -n "" ' --;
done
曾经,我知道这一点,我可以将它用于任何命令节点或 pod。
您可以使用 head
在传递给 xargs 之前获取前 10 行输出。使用 -n
选项指定多少行(在本例中,head -n10
)
就在传送到 xargs
之前,插入以下内容:| head -n10 |
。这将过滤前面输出的前十行以外的所有内容。
试试这个:
kubectl get pods --all-namespaces | grep -i -e Evict -e Error | awk -F ' ' '{print , , }' | head -n10 | xargs -l1 -- sh -c 'kubectl delete pod "" -n ""' --