|
|
- #!/usr/bin/awk -f
-
- function printchars() {
- while (n > 0) {
- x = n / 16 >= 1 ? 16 : n;
- printf("0x%x%x,%s", x - 1, ref[c] - 1, ++i % 12 == 0 ? "\n" : " ");
- n -= x;
- }
- }
-
- /^$/ {
- printchars();
- printf("\n\n");
- c = "";
- i = 0;
- }
-
- /./ {
- if (!ref[$0]) {
- col[cnt++] = $0;
- ref[$0] = cnt;
- }
- if ($0 != c) {
- if (c != "")
- printchars();
- c = $0;
- n = 0;
- }
- n++;
- }
-
- END {
- for (i = 0; i < cnt; i++)
- printf("%s,%s", col[i], ++j % 4 == 0 || i + 1 == cnt ? "\n" : " ");
- }
|