У меня есть файлы данных из старой системы, которые я хотел бы обработать с помощью Awk. Каждый файл состоит из списка записей. Существует несколько разных типов записей, и каждый тип записи имеет другой набор полей фиксированной ширины (символ разделителя полей не существует). Первые два символа записи указывают тип, из этого вы затем знаете, какие поля должны следовать. Файл может выглядеть примерно так:Использование Awk для обработки файла, в котором у каждой записи есть разные поля фиксированной ширины.
AAField1Field2LongerField3
BBField4Field5Field6VeryVeryLongField7Field8
CCField99
Использование Gawk я могу установить FIELDWIDTHS, но это относится ко всему файлу (если я не хватает какой-то способ настройки этого на запись-по-записи основе), или я могу настроить FS на «» и обрабатывать файл по одному символу за раз, но это немного громоздко.
Есть ли способ извлечь поля из такого файла с помощью Awk?
Edit: Да, я мог использовать Perl (или что-то еще). Я все еще хочу знать, есть ли разумный способ сделать это с Awk.
Вы можете просто использовать сопоставление с ответом Джонатана Леффлера. Затем выполните извлечение подстроки. –