Command-Line
格式化長單行的命令輸出
我正在研究 Linux - 商業路由器之間的 vxlan 隧道。我需要調試一些介面設置。
該命令
sudo ip -d link show DEV
給了我一個很好的輸出,但輸出格式就像一個長的單行,如下所示。katabey@leaf-1:mgmt:~$ sudo ip -d link show vxlan_10 11: vxlan_10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9216 qdisc noqueue master bridge state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 52:6d:3d:aa:b5:bf brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 68 maxmtu 65535 vxlan id 10010 local 10.1.1.1 srcport 0 0 dstport 4789 nolearning ttl 64 ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx bridge_slave state forwarding priority 8 cost 100 hairpin off guard off root_block off fastleave off learning off flood on port_id 0x8002 port_no 0x2 designated_port 32770 designated_cost 0 designated_bridge 8000.50:0:0:3:0:3 designated_root 8000.50:0:0:3:0:3 hold_timer 0.00 message_age_timer 0.00 forward_delay_timer 0.00 topology_change_ack 0 config_pending 0 proxy_arp off proxy_arp_wifi off mcast_router 1 mcast_fast_leave off mcast_flood on neigh_suppress on group_fwd_mask 0x0 group_fwd_mask_str 0x0 group_fwd_maskhi 0x0 group_fwd_maskhi_str 0x0 vlan_tunnel off isolated off addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
有這樣的輸出會很棒
vxlan id 10010 local 10.1.1.1 srcport 0 dstport 4789
我記得幾年前我曾經一起工作的 Linux 系統工程師,
command | python ...
但我無法找到/呼叫該命令。(我已經安裝了 Python)。歡迎任何其他解決方案(尤其是單襯裡)。
嘗試:
your-command |grep -Eo '(vxlan id|srcport|dstport) [0-9]+|local [0-9.]+'
這聽起來像是
fmt
coreutils 的一部分命令的工作。特別是,你會想要使用
-s
,--split-only
分割長線,但不要重新填充