linux - 在 bash 脚本中获取子字符串

标签 linux bash parsing

我试图在 bash 脚本中获取子字符串,但我采用的方法并不是一个好的解决方案。我正在解析“ifconfig”命令的响应并尝试获取第一个网络接口(interface)名称。

ifconfig 的结果:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:6d:a1:92  
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:73 errors:0 dropped:0 overruns:0 frame:0
      TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:7099 (6.9 KiB)  TX bytes:7099 (6.9 KiB)

wlan0     Link encap:UNSPEC  HWaddr **** 
      UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
      RX packets:792698 errors:0 dropped:792552 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:219274179 (209.1 MiB)  TX bytes:0 (0.0 B)

wlan5     Link encap:Ethernet  HWaddr ****  
      inet addr:****  Bcast:****  Mask:****
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:48934 errors:0 dropped:3422 overruns:0 frame:0
      TX packets:21217 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:14458518 (13.7 MiB)  TX bytes:2692948 (2.5 MiB)

获取第一个接口(interface)名称 wlan0

conf=`ifconfig`

net=${conf:670:6}

我不明白,但位置有时会改变,这就是我不能使用索引 670 的原因。Wlan0 可以是 wlan1、wlan2 等等...我无法专门搜索 wlan0。有什么建议吗?

最佳答案

GNU awk

ifconfig | awk -vRS= '!/^(eth0|lo)/{print $1;exit}'

跳过 etho 和 lo block 并打印下一个的第一个字段,然后退出。

关于linux - 在 bash 脚本中获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046107/

相关文章:

python - 我的美丽汤刮刀无法按预期工作

node.js - 使用 M1 在 dockerized Linux 上安装 Node Canvas

linux - 导航到 Azure 中由 Terraform 创建的文件共享

linux - 物理上连续的大内存区域

linux - 如何查找当前登录终端的IP?

bash - -n 和 -g 在排序上有什么区别?

linux - 在 shell 脚本中查找匹配的 `)' 时意外的 EOF

linux - 通过 bash 中的第一个字母从一个数组创建新数组

sql-server - 如何在 T-SQL 中从 XML 读取选项?

Matlab symvar 函数的 Python 替代品