Сценарий Bash для редактирования текста в формате csv

В рамках сценария инвентаризации bash я проверяю модули SFP и добавляю их в CSV-файл. Формат в настоящее время выглядит так: с различной длиной:

RO01;1000BaseSX SFP;1000BaseSX SFP RO02;1000BaseSX SFP;1000BaseSX SFP;1000BaseLX SFP 

Моя цель – дать каждой строке после первой собственной строки вместе с первой строкой. Поэтому приведенная выше строка должна выглядеть так:

 RO01;1000BaseSX SFP RO01;1000BaseSX SFP RO02;1000BaseSX SFP RO02;1000BaseSX SFP RO02;1000BaseLX SFP 

Как я могу достичь этого, используя текстовую обработку?

Возможным решением может быть использование awk :

 awk -F";" '{ for (i = 2; i <= NF; i++) { printf("%s;%s\n", $1, $i); } }' file 

С awk -F";" мы устанавливаем FS (разделитель полей) на ; , Затем для каждой строки (записи) мы начинаем с поля 2 до последнего поля ( NF ): for (i = 2; i <= NF; i++) и мы печатаем поле 1 и текущее поле ( $i ).