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