поменяйте струну в 3-м столбце на основе изменения значения в 6-м столбце - awk

Я пытаюсь выяснить, как использовать awk для принуждения изменения последовательной нумерации в 3-м столбце моего файла на основе изменения значения в моем 6-м столбце, но сохранения интервала?? Кто-то может помочь?

Вот пример:

0.00    47258      0   33103.5   33051.0    -9.20
0.00    47258      0   33103.5   33051.0    -9.20
0.00    47258      0   34329.3   34185.7   -55.44
0.00    47258      0   34329.3   34185.7   -55.44
0.00    47258      0   32677.6   32493.5    30.22
0.00    47258      0   32677.6   32493.5    30.22

И я хочу достигнуть этого:

0.00    47258      1   33103.5   33051.0    -9.20
0.00    47258      1   33103.5   33051.0    -9.20
0.00    47258      2   34329.3   34185.7   -55.44
0.00    47258      2   34329.3   34185.7   -55.44
0.00    47258      3   32677.6   32493.5    30.22
0.00    47258      3   32677.6   32493.5    30.22
0
задан 26 September 2018 в 16:26

1 ответ

Как насчет

awk '$6 != last {++n; last = $6} {$3 = n} 1'

Напр.

$ awk '$6 != last {++n; last = $6} {$3 = n} 1' file
0.00 47258 1 33103.5 33051.0 -9.20
0.00 47258 1 33103.5 33051.0 -9.20
0.00 47258 2 34329.3 34185.7 -55.44
0.00 47258 2 34329.3 34185.7 -55.44
0.00 47258 3 32677.6 32493.5 30.22
0.00 47258 3 32677.6 32493.5 30.22
2
ответ дан 27 October 2019 в 09:57

Другие вопросы по тегам:

Похожие вопросы: