mai*_*ash 3 linux bash perl awk sed
使用以下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
Run Code Online (Sandbox Code Playgroud)
我想要的是添加awk或sed或perl one liner命令,它将仅打印两个第一个匹配主机,如下所示
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
Run Code Online (Sandbox Code Playgroud)
从命令行使用perl,
perl -ne'
print if /(Solaris|linux|unix|vms|win|proxy|terminal|unixware)/ && ++$s{$1}<=2;
' /etc/hosts
Run Code Online (Sandbox Code Playgroud)
产量
192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.17 linux1
192.9.200.18 linux2
Run Code Online (Sandbox Code Playgroud)