Toon posts:

[unix] ascii waarderen transleren

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik moet een paar ascii waarden transleren, ik doe alles volgens de boeken, alleen doet hij niet wat ik zou verwachten, wat doe ik fout?

van een 'u[umlaut]' (dec 129 of octa 201) naar 'ue'

code:
1
tr '\201' 'ue' < file1 > file2

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
code:
1
sed s/ü/ue/g < inputfile

[ Voor 161% gewijzigd door AlterEgo op 02-12-2003 21:56 ]


Verwijderd

Topicstarter
AlterEgo schreef op 02 december 2003 @ 21:52:
code:
1
sed s/ü/ue/g < inputfile
hoe krijg je die ü daar gaat het juist om...

Verwijderd

Je kan toch gewoon de ALT- code intypen?!
Of bijvoorbeeld: shift-" en dan u.

[ Voor 31% gewijzigd door Verwijderd op 02-12-2003 22:08 ]


Verwijderd

Topicstarter
Verwijderd schreef op 02 december 2003 @ 22:07:
Je kan toch gewoon de ALT- code intypen?!
Of bijvoorbeeld: shift-" en dan u.
zo gaat het inderdaad ook, maar ik geloof niet dat dat helemaal de bedoeling is, maar dat maakt niet uit, misschien kan je me ook met het volgende een handje helpen?

ik wil dus in een code zetten dat hij van alle ü ä ö respectievlijk ue ae oe maakt, ik dacht zelf aan het volgende:

code:
1
sed 's/[üöä]/ue/g' file > file2


ik zit alleen met dat tweede deel [waar nu ue staat], hoe geef ik aan dat hij dus van van ü een ue maakt en van ö een oe

  • AlterEgo
  • Registratie: Juli 2001
  • Niet online
code:
1
sed -e s/ü/ue/g -e s/ä/ae/g -e s/ö/oe/g <infile


je kunt met sed -f script ook een scrippie aan vertalingen afdraaien: man sed :)

[ Voor 86% gewijzigd door AlterEgo op 02-12-2003 22:36 ]


Verwijderd

Topicstarter
AlterEgo schreef op 02 december 2003 @ 22:34:
code:
1
sed -e s/ü/ue/g -e s/ä/ae/g -e s/ö/oe/g <infile


je kunt met sed -f script ook een scrippie aan vertalingen afdraaien: man sed :)
ik heb inderdaad dit weten te maken, alleen vind ik persoonlijk het wel een erg lange invoerregel, sneller gaat dus niet?

code:
1
sed -e s/[ü]/ue/g -e s/ä/ae/g -e s/ö/oe/g -e s/Ü/Ue/g -e s/Ö/Oe/g -e s/Ä/Ae/g file > file2

[ Voor 6% gewijzigd door Verwijderd op 02-12-2003 23:00 ]


  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

Ik denk niet dat het sneller kan, omdat er geen logisch verband bestaat tussen ä/Ä en a/A.
Met hoofdletters kun je gewoon X van de ascii waarde aftrekken om de kleine letter te vinden, maar voor de letters met verschillende accenten is er niet een soortgelijke manier (voorzover ik weet) om de 'normale' bijbehorende letter te vinden.

Whenever you find that you are on the side of the majority, it is time to reform.


Verwijderd

Topicstarter
Pinball schreef op 02 december 2003 @ 23:47:
Ik denk niet dat het sneller kan, omdat er geen logisch verband bestaat tussen ä/Ä en a/A.
Met hoofdletters kun je gewoon X van de ascii waarde aftrekken om de kleine letter te vinden, maar voor de letters met verschillende accenten is er niet een soortgelijke manier (voorzover ik weet) om de 'normale' bijbehorende letter te vinden.
het vreemde is als ik de ascii waardes intik dan verandert hij helemaal niets, maakt niet uit of ik het octaal of decimaal doe, dat vind ik heel vreemd aangezien hij '\012' voor een regel einde wel begrijpt, komt het omdat het minder standaard ascii waardes zijn?

Verwijderd

probeer eens \0201 in plaats van \201

  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Verwijderd schreef op 02 december 2003 @ 23:00:
ik heb inderdaad dit weten te maken, alleen vind ik persoonlijk het wel een erg lange invoerregel, sneller gaat dus niet?
code:
1
sed -e s/[ü]/ue/g -e s/ä/ae/g -e s/ö/oe/g -e s/Ü/Ue/g -e s/Ö/Oe/g -e s/Ä/Ae/g file > file2
Zoiets?
code:
1
sed -e 's/\([üöäÜÖÄ]\)/\1e/g' < file.in | tr 'üöäÜÖÄ' 'uoaUOA' > file.out

  • pinball
  • Registratie: Oktober 1999
  • Niet online

pinball

Electric Monk

Verwijderd schreef op 03 december 2003 @ 00:25:
[...]


het vreemde is als ik de ascii waardes intik dan verandert hij helemaal niets, maakt niet uit of ik het octaal of decimaal doe, dat vind ik heel vreemd aangezien hij '\012' voor een regel einde wel begrijpt, komt het omdat het minder standaard ascii waardes zijn?
Verwijderd schreef op 03 december 2003 @ 00:32:
probeer eens \0201 in plaats van \201
of \x201

perl slikt \301 trouwens wel, dus idd vreemd dat sed dat niet doet
code:
1
2
pinball@cnoc:~$ echo huuÁii | perl -pe 's/\301/A/';
huuAii

Whenever you find that you are on the side of the majority, it is time to reform.


Verwijderd

code:
1
sed 's/ä/ae/g;s/ü/ue/g;s/ö/oe/g'
is nog iets korter.
Pagina: 1