Regulárny výraz v sed

mpro

Regulárny výraz v sed
« kdy: 05. 06. 2023, 18:15:55 »
Hľadám správny regulárny výraz, ktorý v editore sed (môže byť aj vo formáte pre GNU sed) vytvorí doplnenie textu na začiatku odstavca začínajúceho sa číslom alebo veľkým písmenom a končiaceho sa malým písmenom. V príkladoch pre GNU sed na https://www.gnu.org/software/sed/manual/sed.html#Multiline-techniques som našiel vhodný príklad z ktorého som vychádzal:
sed '/./{H;$!d} ; x ; s/^/\nSTART-->/ ; s/$/\n<--END/' input.txt
a jeho úpravou na:
sed '/./{H;$!d} ; x ; s/\([1-9A-Z].\+[a-z)]\)$/doplneny_text \n\1/' mojsubor.txt
sa to viacmenej podarilo, ale nedarí sa mi regulárnym výrazom povedať, že sa má brať celá oblasť začínajúca sa na začiatku riadku (t. j. znakom ^) a nie na prvom výskyte veľkého písmena alebo čísla od konca odstavca, ako je to teraz.


tecka

  • ***
  • 147
    • Zobrazit profil
    • E-mail
Re:Regulárny výraz v sed
« Odpověď #1 kdy: 05. 06. 2023, 19:29:33 »
Na začátku toho nakumulovaného odstavce je odřádkování. Nevím, co přesně chceš udělat, ale musíš s tím počítat.
Kód: [Vybrat]
sed '/./{H;$!d} ; x ; s/^\n\([1-9A-Z].\+[a-z)]\)$/\ndoplneny_text\1/'
sed '/./{H;$!d} ; x ; s/^\(\n[1-9A-Z].\+[a-z)]\)$/\ndoplneny_text\1/'

mpro

Re:Regulárny výraz v sed
« Odpověď #2 kdy: 05. 06. 2023, 20:52:07 »
 Ďakujem, ten druhý príklad je presne to čo potrebujem.