Toon posts:

[Bash] verwijder tekens van begin

Pagina: 1
Acties:
  • 53 views sinds 30-01-2008

Verwijderd

Topicstarter
Vraagje,
als onderdeel van een bash script dien ik telkens van de eerste (en enige) regel in een bestand alle tekens te verwijderen vanaf het begin van de regel totdat er een bepaalde waarde staat... Hoe is dit het meest simpel te doen?


Voorbeeld van een aantal regels waarbij alles voor <break> verwijderd zou moeten worden.
code:
1
2
3
123456<break>78901234567
123<break>456789012
12345678901<break>234


dit zou na het script moeten zijn:
code:
1
2
3
78901234567
456789012
234


Iemand enig idee?

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Kan mbv een input-output filter met een regular expressie:

code:
1
sed -e 's/.*[<]break[>]//g' < inputbestand > outputbestand

of

code:
1
sed -e 's/[0-9]*[<]break[>]//g' < inputbestand > outputbestand

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


Verwijderd

Dit gaat ook makkelijk met "cut".
Iets in de zin van:
code:
1
cat file.txt | cut -d' ' -f2

[ Voor 55% gewijzigd door Verwijderd op 14-03-2006 15:23 ]


Verwijderd

Topicstarter
Dawns_sister schreef op dinsdag 14 maart 2006 @ 13:23:
Kan mbv een input-output filter met een regular expressie:

code:
1
sed -e 's/.*[<]break[>]//g' < inputbestand > outputbestand

of

code:
1
sed -e 's/[0-9]*[<]break[>]//g' < inputbestand > outputbestand
Werkt perfect, mijn dank hiervoor maar dan komen we op een tweede probleem uit met dit script.

als voorbeeld heb ik het volgden:
code:
1
2
3
214gdfhgh<break>fdg65ddg<lala>fdhjkdshjk<blabla>hdfjk
21434ghgh<break>fdg565ddg<lala>fdhsssdfffshjk<blabla>hdhdsjjk
214dfhgh<break>fdgd565ddg<lala>fdhjkjk<blabla>hdfkkjk


als de onderstaande code uitvoer dan "hak" ik alles voor <break> af... wat ook de bedoeling is..
[code]
sed -e 's/.*[<]break[>]//g' < inputbestand > outputbestand
[code]

Dit zal mij de volgende data opleveren:
code:
1
2
3
fdg65ddg<lala>fdhjkdshjk<blabla>hdfjk
fdg565ddg<lala>fdhsssdfffshjk<blabla>hdhdsjjk
fdgd565ddg<lala>fdhjkjk<blabla>hdfkkjk


Nu wil ik echter als tweede stap alles tussen "<" en ">" willen vervangen voor || dus de eind data zou dus moeten zijn:

code:
1
2
3
fdg65ddg<||>fdhjkdshjk<||>hdfjk
fdg565ddg<||>fdhsssdfffshjk<||>hdhdsjjk
fdgd565ddg<||>fdhjkjk<||>hdfkkjk


Goede tips hoe dit aan te pakken?


Johan.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op dinsdag 14 maart 2006 @ 16:47:

Goede tips hoe dit aan te pakken?


Johan.
Er is net voorgekauwd hoe het met sed moet, dan lijkt het mij een mooie stap om nu zelf uit te vinden hoe dat sed nou werkt :)

Dit topic is gesloten.