sed/awk を使用した ifconfig 書式設定

sed/awk を使用した ifconfig 書式設定

ifconfig私はOpenSUSEを使用しています。走ると手にifconfig eth0入る

eth0  Link encap:Ethernet  HWaddr CE:FD:75:DF:A5:6D
      inet addr:172.16.4.177  Bcast:172.16.5.255  Mask:255.255.254.0
      inet6 addr: fe80::adfd:75ef:fedf:v56d/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:11812456 errors:0 dropped:2 overruns:0 frame:0
      TX packets:7000495 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:2591436376 (2471.3 Mb)  TX bytes:9196901478 (8770.8 Mb)

sed以下を使用して、各引数が新しい行に返されるように書式設定したいと思いますawk

   eth0  
         Link encap:Ethernet
         HWaddr CE:FD:75:DF:A5:6D
         inet addr:172.16.4.177  
         Bcast:172.16.5.255  
         Mask:255.255.254.0
         inet6 addr: fe80::adfd:75ef:fedf:v56d/64 
         Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  
         Metric:1
         RX packets:11812456 
         errors:0 
         dropped:2
         overruns:0 
         frame:0
         TX packets:7000495 
         errors:0
         dropped:0 
         overruns:0 
         carrier:0
         collisions:0
         txqueuelen:1000
         RX bytes:2591436376 (2471.3 Mb)
         TX bytes:9196901478 (8770.8 Mb)

私はifconfig eth0 | sed 's/ /\r/'それを試しましたが、二重空間に分離されていないようです。

ベストアンサー1

から始めることができます

sed 's/\(:[^: ]\+\) \([^(]\)/\1\n\2/g;s/\()\)/\1\n/;s/^ \+//'

十分に近いはずで、より単純化して最適化できます。結果:

eth0  Link encap:Ethernet
 HWaddr CE:FD:75:DF:A5:6D
inet addr:172.16.4.177
 Bcast:172.16.5.255
 Mask:255.255.254.0
inet6 addr: fe80::adfd:75ef:fedf:v56d/64
Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500
 Metric:1
RX packets:11812456
errors:0
dropped:2
overruns:0
frame:0
TX packets:7000495
errors:0
dropped:0
overruns:0
carrier:0
collisions:0
txqueuelen:1000
RX bytes:2591436376 (2471.3 Mb)
  TX bytes:9196901478 (8770.8 Mb)

おすすめ記事