[perl] vind deel van regel, vervang gehele regel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • julby
  • Registratie: Augustus 2010
  • Laatst online: 15-04 15:33
Een absoluut beginnersvraagje ( :$ ) over Perl: ik ben een simpel bash-script aan het schrijven om in een namelist van een model een aantal parameters aan te passen. Perl leek me hiervoor het meest geschikt, ik gebruik toch bash omdat er voordat het model gestart wordt en nadat het model klaar is nogal wat acties nodig zijn die ik gewend ben via de commandline te doen.

Ik wil in de namelist een aantal parameters vervangen, bijv:
start_day = 20
start_hour = 00

vervangen door:
start_day = 21
start_hour = 12


Nu zijn er bergen met inline-perl voorbeelden te vinden voor:
  • zoek woord en vervang dat of:
  • zoek woord, wis regel waarop het voorkomt
Maar net niet hetgeen dat ik wil; zoek bijvoorbeeld de regel met "start_day" en vervang:
  • Op deze regel alles na het "=" teken of:
  • De gehele regel door een andere tekst.
Kan dit met Perl in een zo mooi genaamde "one-liner"?

Alvast eeuwige dank :)

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Ik ken geen Perl, maar met regex kan je sowieso zoiets doen: http://www.troubleshooters.com/codecorn/littperl/perlreg.htm.

Acties:
  • 0 Henk 'm!

  • julby
  • Registratie: Augustus 2010
  • Laatst online: 15-04 15:33
@YellowOnline

Daarmee was het inderdaad mogelijk. Misschien niet de fraaiste oplossing, maar dit werkt:

"s/start_day*.*/start_day = 30/g"


Tijd oms een wat meer over Perl te gaan lezen.... :$

[ Voor 3% gewijzigd door julby op 20-08-2010 20:17 ]


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Met regex kan je héél veel :)

Acties:
  • 0 Henk 'm!

Verwijderd

Waarom Perl en niet gewoon:
sed -i -e 's/^\(start_day\).*/\1 = 21/g'
En ook heel veel niet, dus hint voor iedereen: zie het als een stuk gereedschap, niet als een complete werkplaats.

Acties:
  • 0 Henk 'm!

  • julby
  • Registratie: Augustus 2010
  • Laatst online: 15-04 15:33
@Cheatah

"sed", nog nooit van gehoord, bedankt! Zal daar ook eens naar kijken.
Pagina: 1