Perl Experts - Моя попытка решить мою проблему превращается в много кода, который в PERL кажется, что я приближаюсь к этому правильно. Вот моя проблема:Perl Text Parsing - фиксированная делиметичная структура меняется
У меня есть блок текста (пример ниже), который может иметь переменное количество пробелов между данными столбца. Я использовал простой раскол, но теперь проблема заключается в том, что в столбце «код» теперь содержатся пробелы в данных (я только учёл это в последнем столбце). То, что кажется постоянным (хотя я не имею доступа к структуре источника или не контролирую его) состоит в том, что между столбцами существует минимум 3 пробела (возможно, больше, но не меньше).
Итак, я хотел бы сказать, что мой токен разделителя столбцов - «3 пробела», а затем обрезать данные в каждом, чтобы иметь мои фактические столбчатые данные.
COL0 COL1 COL2 COL3 COL4 COL5
- 4 0.2 1 416489 463455 554
1 0.9 1 E1
0 3 1.4 14 E97-TEST 1
- 1 97.5 396 PASS Good
Я просто пытаюсь получить значения в 6 переменных.
ПРИМЕЧАНИЕ: COL0 может не иметь значения. COL4 может содержать пробел в данных. COL5 может не содержать значения или данных с пространством. Все фиксированное форматирование выполняется с пробелами (без вкладок или других специальных символов). Чтобы уточнить - столбцы НЕ соответствуют размеру. Один файл может иметь COL4 как 13 символов, другой - COL4 с шириной 21 символ. Или не строго, как заявил другой член SO.
Может столбец начать с другим смещением между каждой строкой? Например. row1 is '| 1 2 3 | '(3 пробела), а row2 -' | 11111 2 3 | '(также 3 пробела, но второй столбец теперь начинается со смещения 4 больше, чем в первой строке из-за того, что первое значение в строке2 настолько велико) – DVK
Нет, размер столбца согласован для всех строк данных за файл. Может различать файлы, но согласовываться внутри файла. – Walinmichi
Действительно ли заголовки столбцов присутствуют? – Svante