答案 0 :(得分:1)
最好还使用awk
来简化表达式:
netstat -i | awk '{print $1}' | grep -vE '(Kernel|Iface)'
在这种情况下,我们使用awk
仅打印第一列,之后我们会从netstat
输出的前两行中过滤掉单词。
P.S。甚至更短(感谢@ etan-reisner)
netstat -i | awk '! /(Kernel|Iface)/ {print $1}'
答案 1 :(得分:0)
我得到ifconfig -a | sed 's/[ \t].*//;/^$/d'
的首选输出
虽然netstat -i | awk '{print $1}' | grep -vE '(Kernel|Iface)'
也在工作,但我更喜欢我的解决方案,因为我正在编写Qt QProcess,而更多的参数和程序将不是解决方案。谢谢:))
答案 2 :(得分:0)
您可以使用shell本身来测试/解析接口名称,而无需调用awk
或sed
:
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