在输出文件的开头计算重复的字符串和位置编号

时间:2014-04-13 20:39:13

标签: windows perl duplicates ubuntu-11.10

使用perl的命令可以让我计算行吗? 在输出文件中,应该在行的开头处,在用作输入的先前排序文件中出现连续行的次数。

输入示例:

line 1
line 2
line 2
line 2
line 3
line 3
line 3

输出:

1= line 1
3= line 2
3= line 3

1 个答案:

答案 0 :(得分:2)

在perl单行中:

perl -ne '$c{$_}++; END {print "$c{$_}= $_" for keys %c}' your_file

如果您想要对已排序文件的结果进行流式传输,以使其保持有序并且不会完全加载到内存中:

perl -ne 'if (defined $l && $l ne $_) {print "$c= $l"; $c=0} $l=$_;$c++; END{print "$c= $l"}' your_file