awk-решение для сравнения текущей строки со следующей строкой и печати одной из строк на основе условия

У меня есть входной файл, который выглядит следующим образом: (первый столбец — это номер местоположения, а второй — число, которое должно увеличиваться со временем):

1       0
1       2
1       6
1       7
1       7
1       8
1       7
1       7
1       9
1       9
1       10
1       10
1       9
1       10
1       10
1       10
1       10
1       10
1       10
1       9
1       10
1       10
1       10
1       10
1       10
1       10

и я хотел бы исправить, чтобы это выглядело так (количество замен, которое уменьшилось с предыдущим количеством):

1       0
1       2
1       6
1       7
1       7
1       8
1       8
1       8
1       9
1       9
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10
1       10

Я пытался использовать awk для этого, но спотыкаюсь с getline, так как не могу понять, как сбросить номер строки (NR? )поэтому он будет читать каждую строку и следующую строку, а не две строки за раз. Это код, который у меня есть до сих пор, есть идеи?

awk '{a=$1; b=$2; getline; c=$1; d=$2; if (a==c && b<=d) print a"\t"b; else print c"\t"d}' original.txt > fixed.txt

Кроме того, это вывод, который я сейчас получаю:

1       0
1       6
1       7
1       7
1       9
1       10
1       9
1       10
1       10
1       9
1       10
1       10
1       10
8
задан suegene 28 July 2012 в 21:37
поделиться