Не нужно фантазировать:
awk 'BEGIN{RS="Device ID:"}{print $1", "$4}' file
и просто замените первую строку заголовком.
Это не будет работать в версиях bash
до версии 4.0 (, например, по умолчанию bash
в macOS, то есть версии 3.2.57 (1 )).
Версия 4.0 содержит исправление:
Fixed a bug that caused `.' to fail to read and execute commands from non- regular files such as devices or named pipes.
(это изhttps://tiswww.case.edu/php/chet/bash/CHANGES)
Файл, читаемыйsource
(или .
), когда вы используете его с заменой процесса, не является обычным файлом, поэтому он вызовет ошибку, исправленную в выпуске 4.0.
В настоящее время самым последним выпуском является выпуск 5.0.7 (1 ), в котором ваш код работает должным образом.