hallo
Mit Perlscript kann ich schon dienen.
danke dafür. leider hab ich mit perl nicht so viel am hut bzw. weiß ich nicht so recht, wie ich es in mein bestehendes shell-skript einbinden soll.
ich hab jetzt eine andere lösung:
ich kramte meine zugegeben schon etwas verstaubten c-kenntnisse hervor und schrieb ein programm, das mir von der kommandozeile den codierten string einliest, ihn decodiert und schließlich einfach am bildschirm ausgibt.
der aufruf im shell-skript sieht dann folgendermaßen aus:
DECODIERT=./unescape $CODIERT
echo $DECODIERT
wobei "unescape" der name des kompilierten c-programms ist.
da ich meine erkenntnisse nicht nur für mich behalten will, ist hier der source!
//////////////////////////////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int sonderzeichen(char *kom);
int main(int argc, char *argv[])
{
sonderzeichen(argv[1]);
return 1;
}
int sonderzeichen(char *kom)
{
int i, m = 0;
int leng;
int z, tag = 0;
char zh;
char a[2];
leng = strlen(kom);
for(i = 0; i < leng; i++)
{
if(kom[i] == '+')
kom[i] = ' ';
if(kom[i] == '%')
{
a[0] = *(kom + i + 1);
a[1] = *(kom + i + 2);
sscanf(a, "%02X", &z);
*(kom + i - m) = z;
i = i + 2;
m = m + 2;
}
else
*(kom + i - m) = *(kom + i);
}
*(kom + i - m) = '\0';
printf("%s", kom);
return tag;
}
////////////////////////////////////////////
kompilierung (unter unix): cc -o unescape unescape.c
vielleicht kann's ja noch jemand gebrauchen ...
grüße
Manfred
PS helft euch selbst, sonst hilft euch keiner! ;-)