我是编程初学者,所以这个问题可能是微不足道的。
我想从:
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]'