긴 한 줄 명령 출력 형식 지정

긴 한 줄 명령 출력 형식 지정

저는 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을 설치했습니다.)

다른 솔루션(특히 단일 라이너)도 환영합니다.

答え1

노력하다:

your-command |grep -Eo '(vxlan id|srcport|dstport) [0-9]+|local [0-9.]+'

答え2

fmt이는 coreutils의 일부인 명령 작업처럼 들립니다.

특히 다음을 사용하고 싶을 것입니다.

-s,--split-only

긴 줄을 나누되 다시 채우지는 마세요

答え3

귀하의 구현이 출력 형식 스위치를 ip지원 하는 경우 --json다음과 같은 것을 제안합니다.

sudo ip -d link show vxlan_10 | jq -r '.[] | to_entries[] | "\(.key) \(.value)"'

전임자. (VLAN 인터페이스가 없으므로 일반 무선 인터페이스가 표시됩니다):

$ ip --json link show wls1 | jq -r '.[] | to_entries[] | "\(.key) \(.value)"'
ifindex 3
ifname wls1
flags ["BROADCAST","MULTICAST","UP","LOWER_UP"]
mtu 1500
qdisc mq
operstate UP
linkmode DORMANT
group default
txqlen 1000
link_type ether
address 00:21:6a:96:40:12
broadcast ff:ff:ff:ff:ff:ff

関連情報