Мне нужно обработать файл больших данных, содержащий многострочные записи, пример ввода:
1 Name Dan
1 Title Professor
1 Address aaa street
1 City xxx city
1 State yyy
1 Phone 123-456-7890
2 Name Luke
2 Title Professor
2 Address bbb street
2 City xxx city
3 Name Tom
3 Title Associate Professor
3 Like Golf
4 Name
4 Title Trainer
4 Likes Running
Обратите внимание, что первое целочисленное поле уникально и действительно идентифицирует всю запись. Таким образом, в приведенном выше вводе у меня действительно есть 4 записи, хотя я не знаю, сколько строк атрибутов может иметь каждая запись. Мне нужно: - определить действительную запись (должны быть поля «Имя» и «Заголовок») - вывести доступные атрибуты для каждой допустимой записи, скажем "Имя", "Заголовок", "Адрес" обязательные поля.
Пример вывода:
1 Name Dan
1 Title Professor
1 Address aaa street
2 Name Luke
2 Title Professor
2 Address bbb street
3 Name Tom
3 Title Associate Professor
Итак, в выходном файле запись 4 удалена, так как в ней нет поля «Имя». Запись 3 не имеет поля «Адрес», но все еще печатается на выходе, поскольку это действительная запись с «Именем» и «Заголовком».
Могу ли я сделать это с помощью awk? Но как мне идентифицировать всю запись, используя первое поле «id» в каждой строке?
Большое спасибо эксперту по сценариям оболочки unix за помощь! :)