Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Diff, het verwijderen van +-tekens  (gelezen 718 keer)

Alfredo

  • Gast
Diff, het verwijderen van +-tekens
« Gepost op: 2007/07/03, 22:08:08 »
Ik probeer een aantal files te upgraden en dit met een diff bestand. Het probleem is dat er nogal wat veranderd is, dus ik heb +-tekens

Offline profoX

  • Lid
    • wesley
    • Lionslink
Diff, het verwijderen van +-tekens
« Reactie #1 Gepost op: 2007/07/03, 23:00:44 »
1. Waarom pas je de patch niet automatisch toe indien mogelijk?
2. Wat bedoel je met "Replace is geen optie, omdat ze niet enkel vanvoor bij een nieuwe regel voorkomen, maar ook gewoon in de tekst"? Dat er ook plustekens in de tekst zitten die NIET vervangen mogen worden? Dat valt op te lossen met een slimmere replace :) Bijvoorbeeld zo met sed: sed "s/^+//" bestandsnaam
Dat commando zal alle +'en die vooraan in een lijn voorkomen bij "bestandsnaam" weghalen en de output naar de console sturen. Je kan het natuurlijk ook naar een file redirecten door dit toe te voegen aan het commando: > nieuwebestandsnaam of "bestandsnaam" ter plekke aanpassen door de -i optie toe te voegen aan het sed commando
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Alfredo

  • Gast
Diff, het verwijderen van +-tekens
« Reactie #2 Gepost op: 2007/07/04, 10:27:50 »
1. Omdat ik manueel al wat modificaties heb toegevoegd en anders moet ik van 0 terug beginnen.
2. Inderdaad, er komen ook gewoon plustekens voor in het script zelf.

Ik heb weer wat bijgeleerd, sed werkt perfect. :) Ik versta enkel het stukje "s/^+//" niet. Het plusteken zie ik wel staan, maar de rest ken ik niet.

Bedankt in ieder geval!

Offline profoX

  • Lid
    • wesley
    • Lionslink
Diff, het verwijderen van +-tekens
« Reactie #3 Gepost op: 2007/07/04, 17:28:06 »
Citaat van: Alfredo
Ik heb weer wat bijgeleerd, sed werkt perfect. :) Ik versta enkel het stukje "s/^+//" niet. Het plusteken zie ik wel staan, maar de rest ken ik niet.
s/aaa/bbb verandert de eerste "aaa" per lijn in "bbb"
s/^aaa/bbb verandert de eerste "aaa" per lijn in "bbb", maar alleen maar als "aaa" helemaal vooraan in de lijn staat (daar dient die ^ voor)

en dus: s/^+// verandert alle +'en in niets (doet ze dus weg), maar alleen maar als de + vooraan in de lijn staat

:) sed kan heel handig zijn voor tekstaanpassingen
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)