我正在从文件数据的每一行中提取主机名和IP地址,将从cn=mykosts001
即mykosts001
和IP地址ipHostNumber=192.168.18.118
即{{ 1}}。
下面是包含数据的文件。
192.168.18.118
$ cat hosts.tx
dn: cn=mykosts001+ipHostNumber=192.168.18.118,ou=hosts,ou=corp,ou=services,o=rocks.com
dn: cn=mykosts002+ipHostNumber=192.168.18.119,ou=hosts,ou=corp,ou=services,o=rocks.com
dn: cn=mykosts003+ipHostNumber=192.168.18.120,ou=hosts,ou=corp,ou=services,o=rocks.com
dn: cn=mykosts004+ipHostNumber=192.168.18.121,ou=hosts,ou=corp,ou=services,o=rocks.com
对于上面编辑的行,在这种情况下,当dn: cn=mykosts005+ipHostNumber=192.168.18.122,ou=hosts,ou=corp,ou=services,
o=rocks.com
移到另一行时,它也会在o=rocks.com
之后打印rocks.com
。
我尝试过的事情:
=
我在上面尝试过,但不知道仅获取主机名和IP。
所需的输出:
$ cat hosts.tx | sed '/^$/d' | cut -d"=" -f2-3
mykosts001+ipHostNumber=192.168.18.118,ou
mykosts002+ipHostNumber=192.168.18.119,ou
mykosts003+ipHostNumber=192.168.18.120,ou
mykosts004+ipHostNumber=192.168.18.121,ou
答案 0 :(得分:2)
$ awk -F'[=+,]' '/^dn:/{print $2, $4}' file
mykosts001 192.168.18.118
mykosts002 192.168.18.119
mykosts003 192.168.18.120
mykosts004 192.168.18.121