使用命令行过滤2列列表

时间:2013-11-30 04:50:50

标签: regex sorting terminal line uniq

我有一个文件分为两列; ips和主机名。

实施例

xx.xx.xx.1    name.com
xx.xx.xx.2    name.com
xx.xx.xx.3    unique.name.com
xx.xx.xx.4    name.com
xx.xx.xx.5    more.unique.com
xx.xx.xx.6    name.com
.
.
.
.

我想删除带有重复'name.com'的行。我尝试了一些uniq和sort命令,但无法弄明白。非常感谢帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

一旦问题变得复杂,我倾向于回归Perl:

#! /usr/bin/perl

%count = ();
while (<>) {
    my ($ip, $hostname) = split /\s+/;
    print $_ if ($hostname eq 'name.com' and ++$count{$hostname} == 1);
}

答案 1 :(得分:0)

perl -ane '$seen{$F[1]}++ or print' filename