Sed 如何将ifconfig输出连接到每个接口的一行

Sed 如何将ifconfig输出连接到每个接口的一行,sed,line,ifconfig,Sed,Line,Ifconfig,如何使用sed转换以下输出? 发件人: 但是没有运气!提前感谢您的帮助这有帮助吗(awk) 试验 kent$echo“lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000 igb0:标志=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255 groupname mnic_data“|awk'/:/&&f{print”“}{printf”%s',$0;f=1}” lo0

如何使用sed转换以下输出? 发件人:

但是没有运气!提前感谢您的帮助

这有帮助吗(awk)

试验

kent$echo“lo0:flags=2001000849 mtu 8232索引1
inet 127.0.0.1网络掩码ff000000
igb0:标志=9040843 mtu 1500索引2
inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255
groupname mnic_data“|awk'/:/&&f{print”“}{printf”%s',$0;f=1}”
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据
这有帮助吗(awk)

试验

kent$echo“lo0:flags=2001000849 mtu 8232索引1
inet 127.0.0.1网络掩码ff000000
igb0:标志=9040843 mtu 1500索引2
inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255
groupname mnic_data“|awk'/:/&&f{print”“}{printf”%s',$0;f=1}”
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据
您可以尝试以下方法:

$ sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1    inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2    inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255    groupname mnic_data
$sed-e:a-e'$!Ns/\n/;ta'-e'P;D'输入文件
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据
编辑:要消除上述输出中的多余空格,可以使用:

$ sed -e :a -e '$!N;s/\n\s\+/ /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255 groupname mnic_data
$sed-e:a-e'$!Ns/\n\s\+/;ta'-e'P;D'输入文件
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据
您可以尝试以下方法:

$ sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1    inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2    inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255    groupname mnic_data
$sed-e:a-e'$!Ns/\n/;ta'-e'P;D'输入文件
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据
编辑:要消除上述输出中的多余空格,可以使用:

$ sed -e :a -e '$!N;s/\n\s\+/ /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255 groupname mnic_data
$sed-e:a-e'$!Ns/\n\s\+/;ta'-e'P;D'输入文件
lo0:flags=2001000849 mtu 8232索引1 inet 127.0.0.1网络掩码ff000000
igb0:flags=9040843 mtu 1500索引2 inet 10.1.1.1网络掩码FFFFFF 00广播10.1.1.255组名mnic_数据

如果
ifconfig
发出ipv6地址或mac地址,它们将有冒号。如果
ifconfig
发出ipv6地址或mac地址,它们将有冒号。
kent$  echo "lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
    inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2
    inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255
    groupname mnic_data"|awk '/:/&&f{print ""}{printf "%s", $0;f=1}'
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1    inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2    inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255    groupname mnic_data
$ sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1    inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2    inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255    groupname mnic_data
$ sed -e :a -e '$!N;s/\n\s\+/ /;ta' -e 'P;D' inputfile
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000
igb0: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> mtu 1500 index 2 inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255 groupname mnic_data
ifconfig |
awk '
    FNR>1 && /^[^[:space:]]/ {print ""}
    {printf "%s", $0}
    END {print ""}
'