我是编程初学者,所以这个问题可能是微不足道的。
我想从:
1 sth
2 sth
3 sth
4 sth
3 sth
2 sth
2 sth
到:
1 sth
2 sth
2 sth
2 sth
3 sth
3 sth
4 sth
这是 gnuplot 所需的热图格式。我知道你可以使用: 来按行中的第一个数字对数据进行排序sort -n "datafile",但是如何将所有内容分成块?谢谢。
这种方式使它:
$ sort -n file | awk '{if (a!=$1) {print ""} a=$1}1'
1 sth
2 sth
2 sth
2 sth
3 sth
3 sth
4 sth
sort -n file很清楚,因为您已经使用过它。awk '{if (a!=$1) {print ""} a=$1}1'$1) 保存在变量中来完成的a。{}1条件打印每一行。Perl 解决方案:
sort -n datafile | perl -ape 'print "\n" if defined $previous and $F[0] != $previous; $previous = $F[0]'