連番ごとに印をつける

連番ごとに印をつける|OKWave にインスパイヤされて、連番ごとに印を付けます。

要するに連番、つまり、前の番号との差が 1 でない場合に印を入れます。

#! /usr/local/bin/nawk -f
## check_num.awk
## 連番になっているかどうかをチェックする

{
    num[NR] = $1;
}

NR >= 2 && num[NR] - num[NR - 1] != 1 {
    print ">";
}

{
    print $0;
}

awk だとシンプルに記述できます。

実行してみます。

$ cat test.txt
1 A 1 2
2 B 5 2
3 C 2 3
4 D 4 4
10 J 5 10
11 K 6 12
13 M 2 28

$ gawk -f check_num.awk test.txt
1 A 1 2
2 B 5 2
3 C 2 3
4 D 4 4
>
10 J 5 10
11 K 6 12
>
13 M 2 28 

キーブレーク処理というかどうかは置いておいて、簡潔に記述できます。

tag_nawk.png tag_nawk.png tag_nawk.png tag_nawk.png