2015-02-13 4 views
1

У меня есть текстовый файл, который содержит следующие (ABCD и т.д. ... содержит некоторые случайные значения):Как отделить линии в зависимости от значения в колонке 1

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 

ответ

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

Если это не первая линия, а значение в old не то же самое, что и в $1, напечатать разделитель. Затем безоговорочно распечатайте текущую строку и запишите значение $1 в old, чтобы мы помним в следующий раз. Повторяйте до конца.

+0

Да, это прекрасно работает, это очень приятно :) Спасибо за эту команду. – raphy75

Смежные вопросы