我如何grep netstat -i的以下输出中给出的接口名称

时间:2015-09-11 15:13:31

标签: bash grep

嗨我想把接口名称作为列表grep,我得到netstat -i的接口表,它看起来像这样: enter image description here

谢谢。

3 个答案:

答案 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本身来测试/解析接口名称,而无需调用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