2

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

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

#

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

即,如果两个数字多次出现,则在输出文件中写入一个唯一的行,其中第一个数字(如果两者中较小的一个)。

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

4

3 回答 3

2

你可以试试:

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

看见

于 2012-07-16T11:38:36.293 回答
1

你可以结合perlsort

perl -lne 'BEGIN { $, = " " } print sort split' infile | sort -u
于 2012-07-16T12:08:48.660 回答
0
awk -vOFS="\t" '$2<$1 {print $2,$1} $1<=$2 {print}'|sort -u

也可以

于 2012-07-16T13:13:50.080 回答