使用无序的整数列对文件进行排序

时间:2012-07-16 11:28:49

标签: perl bash sorting

我有一个包含两列整数值的输入文件。我想以这种方式砍掉输入文件

 input file:
 ...
 ...
 12312 565456
 565456 12312
 ...
 ...     

 output file:
 ...
 ...
 12312 565456
 ...
 ...

即如果两个数字偶然存在多次,则在输出文件中写入唯一的行,其中第一个数字是两个中较小的一个。

如何使用sort或perl脚本完成?

3 个答案:

答案 0 :(得分:2)

您可以尝试:

perl -nale ' @F=reverse @F if($F[0]>$F[1]);                 
             $x=$F[0]." ".$F[1]; if(!$h{$x}){print $x;$h{$x}=1;}'

See it

答案 1 :(得分:1)

您可以合并perlsort

perl -lne 'BEGIN { $, = " " } print sort split' infile | sort -u

答案 2 :(得分:0)

awk -vOFS="\t" '$2<$1 {print $2,$1} $1<=$2 {print}'|sort -u

也可以使用