使用下面的 egrep 命令,我从/etc/hosts 文件中获取主机,如下例所示
egrep "Solaris|linux|unix|vms|win|proxy|terminal|unixware" /etc/hosts
192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.14 Solaris3
192.9.200.15 Solaris4
192.9.200.16 Solaris5
192.9.200.17 linux1
192.9.200.18 linux2
192.9.200.19 linux3
192.9.200.20 linux4
192.9.200.21 linux5
我想要的是添加 awk 或 sed 或 perl 一个线性命令,它将仅打印两个第一个匹配主机,如下所示
egrep "Solaris|linux|unix|vms|win|proxy|terminal|unixware" | ...... /etc/hosts
192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.17 linux1
192.9.200.18 linux2
最佳答案
从命令行使用 perl,
perl -ne'
print if /(Solaris|linux|unix|vms|win|proxy|terminal|unixware)/ && ++$s{$1}<=2;
' /etc/hosts
输出
192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.17 linux1
192.9.200.18 linux2
关于linux - 如何仅匹配主机文件中的前两个主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353808/