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)
答え2
次のスクリプトは=
シンボルの中間置換を使用します(必要なシンボルに自由に変更してください)。
#!/bin/sed -f
s/\s\+\s/=/g
/:[^=:]\+:/s/:[^=:]\+ /&=/g
s/^=/\t/
s/ *=$//
s/ *=/\n\t/g
だから
ifconfig eth0 | sed -f script.above
出力:
eth0
Link encap:Ethernet
HWaddr 74:2f:68:8b:b8:6e
inet addr:192.168.1.247
Bcast:192.168.1.255
Mask:255.255.255.224
inet6 addr: fe80::762f:68ff:fe8b:b86e/64
Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500
Metric:1
RX packets:3128543
errors:0
dropped:1
overruns:0
frame:0
TX packets:1346967
errors:0
dropped:0
overruns:0
carrier:0
collisions:0
txqueuelen:1000
RX bytes:4538616348 (4.5 GB)
TX bytes:118149772 (118.1 MB)