problem mit script (awk)
felix meier
- sonstiges
hi
ich habe ein problem mit meinem script:
cat user | gawk -F[,] '{printf "create:%2.2s%4.4s\n", $3,$2,};'
das script liest aus einer datei user zeilenweise eine kommaseparierte liste ein.
dann werden aus dem dritten wert und dem zweiten wert ein string erstellt. und zwar die ersten zwei buchstaben vom dritten wert und 4 vom zweiten wert.
beispiel:
einlesen
1, test, person,
ergibt: tepers
wie kann ich das jetzt realisieren, dass das skript nicht die ersten beiden buchstaben von $3 nimmt, sondern den ersten und den letzen buchstaben:
also: ttpers
kann mir jemand einen tipp geben?
gruss
felix
Hallo felix,
kann mir jemand einen tipp geben?
folgendes AWK-Script sollte Dich weiterbringen:
{
printf "create:%s%s%s\n",
substr($3,0,1),
substr($3,-1,1),
substr($2,0,4)
}
Viele Grüße,
Christian
Hi
folgendes AWK-Script sollte Dich weiterbringen:
{
printf "create:%s%s%s\n",
substr($3,0,1),
substr($3,-1,1),
substr($2,0,4)
}
ich habs gerade ausprobiert.
leider bekomme ich als ausgabe nicht den ersten und den letzen sondern zweimal den ersten buchstaben:
beispiel:
1, testperon, muster
ausgabe:
ttmust und leider nicht tpmust
wo liegt der fehler? kann substr nicht negativ angegeben werden?
Hallo felix,
wo liegt der fehler? kann substr nicht negativ angegeben werden?
Oh, stimmt, ich bin zu PHP-verwöhnt. Also nochmal:
{
printf "create:%s%s%s\n",
substr($3,1,1),
substr($3,length($3),1),
substr($2,1,4);
}
Viele Grüße,
Christian
hi nochmals
folgendes AWK-Script sollte Dich weiterbringen:
{
printf "create:%s%s%s\n",
substr($3,0,1),
substr($3,-1,1),
substr($2,0,4)
}
ich habe jetzt n bisschen verändert und es geht:
...
,substr($3,length($3),1),substr($2,0,4),
...
gruss