Как манипулировать содержимым многих файлов через awk? - PullRequest
0 голосов
/ 06 ноября 2019

У меня 14 файлов.

Пример файла

Раздел данных начинается со строки «START OF RMS MAP» и заканчивается строкой «END OFRMS MAP ". Метки заголовка в столбце 61-80 для каждой строки имеют соответственно

  • КАРТА СКОРОСТИ RMS
  • ЭПОХА КАРТЫ СОВРЕМЕННЫХ
  • LAT / LON1 / LON2 / DLON / H
  • КОНЕЦ СРЕДНЕЙ КАРТЫ

Я хочу извлечь последние пять значений 2-х строк, с которых

начинается для каждой

  • 42,5-180,0 180,0 5,0 450,0 LAT / LON1 / LON2 / DLON / H

конец для каждого

  • 35,0-180,0 180,0 5,0 450,0 LAT / LON1 / LON2 / DLON/ Ч
awk '
    /(START|END|EPOCH) OF (RMS|CURRENT) MAP/
    $1 == "42.5-180.0" {p=1}
    $1 == "32.5-180.0" {p=0}
    p && $0 ~ "LAT/LON1/LON2/DLON/H" {
      print; getline; getline
      print $(NF-4)" "$(NF-3)" "$(NF-2)" "$(NF-1)" "$NF
    }
  ' < esag1880.19i

Вывод:

  2019     7     7     0     0     0                        EPOCH OF CURRENT MAP
    42.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
65 60 58 56 54
    40.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
66 61 60 59 57
    37.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
66 63 61 61 60
    35.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
67 63 63 62 60
  2019     7     7     2     0     0                        EPOCH OF CURRENT MAP
    42.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
45 44 43 42 41
    40.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
49 48 47 45 44
    37.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
52 51 49 48 46
    35.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
54 53 51 49 47
.
.
.
.
  2019     7     8     0     0     0                        EPOCH OF CURRENT MAP
    42.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
1 1 1 1 1
    40.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
1 1 1 1 1
    37.5-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
1 2 2 1 1
    35.0-180.0 180.0   5.0 450.0                            LAT/LON1/LON2/DLON/H
1 2 2 2 1
    13                                                      END OF RMS MAP

Я пробовал

  2019     7     7     0     0     0    42.5    25.0    65
  2019     7     7     0     0     0    42.5    30.0    60
  2019     7     7     0     0     0    42.5    35.0    58
  2019     7     7     0     0     0    42.5    40.0    56
  2019     7     7     0     0     0    42.5    45.0    54
  2019     7     7     0     0     0    40.0    25.0    66
  2019     7     7     0     0     0    40.0    30.0    61
  2019     7     7     0     0     0    40.0    35.0    60
  2019     7     7     0     0     0    40.0    40.0    59
  2019     7     7     0     0     0    40.0    45.0    57
  2019     7     7     0     0     0    37.5    25.0    66
  2019     7     7     0     0     0    37.5    30.0    63
  2019     7     7     0     0     0    37.5    35.0    61
  2019     7     7     0     0     0    37.5    40.0    61
  2019     7     7     0     0     0    37.5    45.0    60
  2019     7     7     0     0     0    35.0    25.0    67
  2019     7     7     0     0     0    35.0    30.0    63
  2019     7     7     0     0     0    35.0    35.0    63
  2019     7     7     0     0     0    35.0    40.0    62
  2019     7     7     0     0     0    35.0    45.0    60
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...