如何链接 awk 打印语句?

voi*_*ces 5 bsd bash gnu awk text-manipulation

好的,这是一个简单的例子;我分三步隔离主机的 IPV4:

ip -br a  
lo               UNKNOWN        127.0.0.1/8 ::1/128 
eth0             DOWN           
wlan0            UP             192.168.0.101/24 fe80::9fcd:45fb:1e0f:a1cc/64 
Run Code Online (Sandbox Code Playgroud)
ip -br a | awk '/wlan0/ {print $3}'  
192.168.0.101/24
Run Code Online (Sandbox Code Playgroud)
ip -br a | awk '/wlan0/ {print $3}' | awk -F '/' '{print $1}'
192.168.0.101
Run Code Online (Sandbox Code Playgroud)

而不是调用awk(将一个的输出传送到下一个)的第二个实例;怎么能一蹴而就?


只想说:问题不在于解析ip. 我只需要一个简单的例子来帮助说明这个问题;这是我想到的第一件事。真正的问题总结在标题中。

无论如何,它的价值(我必须检查它,但我很确定);这就是我在(最近)过去所做的:

ip -br a s dev wlan0 | awk -F '[ /]*' '{print $3}'
192.168.0.101
Run Code Online (Sandbox Code Playgroud)

Ste*_*uch 2

您可以使用gsub来实现此目的,例如:

ip -br a | awk '/wlan0/ {gsub(/\/.*/, ""); print $3}'
Run Code Online (Sandbox Code Playgroud)