Использование sed для выравнивания текста, начиная с шаблона и заканчивая строкой

У меня есть такой текст:

LDX LEVEL LDA INITD015,X ; INITIAL ACTIVE SPRITES STA $D015 STA SAVED015 LDA INITXPOS,X ; INITIAL HERO X COORDINATE STA XPOS LDA INITYPOS,X ; INITIAL HERO Y COORDINATE STA YPOS LDA INITXPOSMUM,X ; INITIAL MUMMY X COORDINATE STA XPOSMUM LDA LEVEL BNE NOTLOADENDELEMENTS LDA FLAGLOSELIFE BNE NOTLOADENDELEMENTS ; LDX #<BIGELEMENTSFILE ; LOW BYTE ; LDY #>BIGELEMENTSFILE ; HI BYTE ; JSR LOADFILE_EXOMIZER 

где мне нужно выровнять текст, начинающийся с символа ";" который НЕ является первым символом строки, до конца строки, на номеру 41 строки. Линии, начинающиеся с ";" должны быть нетронутыми до (и если) второго «;» выставляется, затем смотрит со второго »; до конца строки должны быть выровнены на char 41. Может быть, второй «;» до или после char 41.

Может ли это быть достигнуто с помощью SED или AWK?

One Solution collect form web for “Использование sed для выравнивания текста, начиная с шаблона и заканчивая строкой”

Как насчет perl?

 perl -pe 's/^(.+?)(?=;)/$1 . " "x(41-length($1))/e' file 
  LDX LEVEL LDA INITD015,X ; INITIAL ACTIVE SPRITES STA $D015 STA SAVED015 LDA INITXPOS,X ; INITIAL HERO X COORDINATE STA XPOS LDA INITYPOS,X ; INITIAL HERO Y COORDINATE STA YPOS LDA INITXPOSMUM,X ; INITIAL MUMMY X COORDINATE STA XPOSMUM LDA LEVEL BNE NOTLOADENDELEMENTS LDA FLAGLOSELIFE BNE NOTLOADENDELEMENTS ; LDX #<BIGELEMENTSFILE ; LOW BYTE ; LDY #>BIGELEMENTSFILE ; HI BYTE ; JSR LOADFILE_EXOMIZER 

AWK

 awk ' (p=index(substr($0,2), ";")) > 0 { printf "%-40s%s\n", substr($0,1,p), substr($0,p) next } {print} ' file 
  • Использование grep для поиска первых двух номеров IP-адресов?
  • Как перенаправить вывод команд Linux на конкретную строку и столбец в csv?
  • sed: чтение всего файла в пространство шаблонов без сбоев при однострочном вводе
  • format String с помощью sed
  • Как выбрать первое совпадение между двумя шаблонами, включая их
  • Удаление расширения только из первого столбца
  • Как перечислять только имена файлов, удаляющих каталоги и подкаталоги
  • Создание отдельной таблицы из нескольких файлов
  • sed insert в определенных положениях
  • Замените строку в файле на другую, где оба сохраняются в переменных
  • Как чередовать два файла txt с альтернативным числом строк
  • Linux и Unix - лучшая ОС в мире.