我有一个包含两列整数值的输入文件。我想以这种方式切割输入文件
input file:
...
...
12312 565456
565456 12312
...
...
#
output file:
...
...
12312 565456
...
...
即,如果两个数字多次出现,则在输出文件中写入一个唯一的行,其中第一个数字(如果两者中较小的一个)。
如何使用 sort 或 perl 脚本来完成?
你可以试试:
perl -nale ' @F=reverse @F if($F[0]>$F[1]);
$x=$F[0]." ".$F[1]; if(!$h{$x}){print $x;$h{$x}=1;}'
你可以结合perl
和sort
:
perl -lne 'BEGIN { $, = " " } print sort split' infile | sort -u
awk -vOFS="\t" '$2<$1 {print $2,$1} $1<=$2 {print}'|sort -u
也可以