Toon posts:

[unix] met sed medeklinkers aanpassen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Bestaat er in sed een commando op alle medeklinkers te selecteren en om die vervolgens aan te passen? Ik moet voor een opdracht van bijvoorbeeld een A in een woord AVA maken en een E EVE, dit los ik nu op de volgende manier op, maar het moet toch sneller kunnen, helaas geeft mijn handboeken geen andere oplossingen...

code:
1
> sed -e s/a/ava/g -e s/o/ovo/g -e s/e/eve/g -e s/u/uvu/g -e s/i/ivi/g  file | cat > file

  • Emmeau
  • Registratie: Mei 2003
  • Niet online

Emmeau

All your UNIX are belong to us

hmm uit het hoofd

sed -e 's/\([aeoui]\)/\1v\1/g' file > file2

even proberen
$ echo hoi | sed 's/\([aeoui]\)/\1v\1/g'
hovoivi
$

werkt :)

i = ivi
o = ovo
a = ava
e = eve
u = uvu

[ Voor 24% gewijzigd door Emmeau op 02-12-2003 12:53 ]

If you choose to criticise you choose your enemies


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:32
OS specifieke batch-scripts horen niet thuis in P&W, maar in het juiste OS forum

P&W -> NOS

https://fgheysels.github.io/


Verwijderd

Topicstarter
Emmeau schreef op 02 december 2003 @ 12:52:
hmm uit het hoofd

sed -e 's/\([aeoui]\)/\1v\1/g' file > file2

even proberen
$ echo hoi | sed 's/\([aeoui]\)/\1v\1/g'
hovoivi
$

werkt :)

i = ivi
o = ovo
a = ava
e = eve
u = uvu
okay bedankt, ik was dus naar het commando \1 op zoek, daarmee neemt hij dus de letter uit de eerste string over.

ASCII blijft een probleem hier, om bijvoorbeeld van een "u te ue maken [u umlaut] zou het volgende toch moeten volstaan?

code:
1
tr '\129' 'ue' < file > file2


maar hier weigert hij de umlaut om te zetten.

[ Voor 16% gewijzigd door Verwijderd op 02-12-2003 13:38 ]