2015-09-11 15 views

回答

1

這是更好地使用也awk簡化表達式:

netstat -i | awk '{print $1}' | grep -vE '(Kernel|Iface)' 

在我們使用awk只打印第一列這種情況下,之後我們過濾掉netstat輸出的前兩行字。

P.S.或者更短(感謝@伊坦 - 賴斯納)

netstat -i | awk '! /(Kernel|Iface)/ {print $1}' 
+1

幾乎沒有*需要將'grep'管道到'awk'或'awk'到'grep'。 'awk'! /(Kernel | Iface)/ {print $ 1}''或'awk'NR> 2 {print $ 1}'例如 –

+0

感謝它的工作:) – bulldog68

+1

是的,謝謝你的提示。可能作者會使用它。 –

0

我得到ifconfig -a | sed 's/[ \t].*//;/^$/d' 雖然也在努力首選的輸出,但我會更喜歡我的解決方案,因爲我寫的Qt QProcess中和更多的參數和方案將不是一個解決方案。謝謝:)

0

您可以使用shell本身測試/解析接口名稱以及無需調用任何awksed

netstat -i | while read iface data; do 
    [ $(expr "$iface" : "Kernel\|Iface") -eq 0 ] && 
    printf "%s\n" "$iface" 
done 

或者作爲一個班輪(不宜過長):

netstat -i | while read iface data; do [ $(expr "$iface" : "Kernel\|Iface") -eq 0 ] && printf "%s\n" "$iface"; done