如何根据第1列中的值分隔行

时间:2015-02-13 05:05:34

标签: shell

我有一个包含以下内容的文本文件(b b d等...包含一些随机值):

 1 a
 1 b
 2 c
 2 d
 2 e
 2 f
 6 g
 6 h
 6 i
12 j
12 k

是否有办法根据第一个字符串的内容将行与某些字符分开,知道这些数字总是会增加,但也可能会有所不同。分离将是第一个字符串递增时,从1到2,然后是2到6等......

输出将是这样的(这里我想使用----------作为分离):

1 a
1 b
----------
2 c
2 d
2 e
2 f
----------
6 g
6 h
6 i
----------
12 j
12 k

1 个答案:

答案 0 :(得分:4)

awk 'NR>1 && old != $1 { print "----------" } { print; old = $1 }'

如果它不是第一行且old中的值与$1中的值不同,请打印分隔符。然后无条件地打印当前行,并在$1中记录old的值,以便我们记得下次。重复直到完成。