簡體   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