0

假设我有一个这样的文件......

4  2  8  2 12  3 18  2 22  2 26  2 28  3 30  2      
4  3 10  2 14  2 18  2 20  3 22  2 28  2 32  2      
2  3 10  3 12  2 16  2 18  3 20  2 24  2 26  3     
1  3  3  3 17  3 19  3 26  2 28  2 30  2 32  2 
4  2  8  2 12  3 18  2 22  2 26  2 28  3 30  2

输入中的第一行和最后一行是相同的...

我希望输出像...

4  2  8  2 12  3 18  2 22  2 26  2 28  3 30  2  2     
4  3 10  2 14  2 18  2 20  3 22  2 28  2 32  2  1   
2  3 10  3 12  2 16  2 18  3 20  2 24  2 26  3  1   
1  3  3  3 17  3 19  3 26  2 28  2 30  2 32  2  1

输出中额外的最后一列只是指定了额外的行数.....

我怎么能在bash中做到这一点......

我知道这个sort命令,但它只适用于每行一个数字....

4

1 回答 1

0

来自sehe的建议,这个呢?

sort your_file | uniq -c | awk '{for(i=2;i<=NF;i++) printf $i"\t"; printf $1"\n"}'

输出:

1       3       3       3       17      3       19      3       26      2       28      2       30      2       32      2       1
2       3       10      3       12      2       16      2       18      3       20      2       24      2       26      3       1
4       2       8       2       12      3       18      2       22      2       26      2       28      3       30      2       2
4       3       10      2       14      2       18      2       20      3       22      2       28      2       32      2       1
于 2013-04-19T08:55:52.803 回答