lasse wrote:

Hej!

Jag har en file som tyvärr har felformat som jag försöker fixxa till, men eftersom att jag dåligt om kunskaper i programering så försöker jag fixa det i bash med sed, awk och cut.
Tyvärr har jag tagit mig lite vatten över huvet.

[EMAIL PROTECTED] ~/slask $ cat felfil.txt
a a:x1:y:z     #fel formaterad
b b:x2:y:z    #fel
c:x3:y:z     #rätt formaterad
d d:x4:y:x    #fel
e:x5:y:z    #rätt
[EMAIL PROTECTED] ~/slask $ sed -e 's/\([^:]*\) \1:\(.*\)/\1:\2/' felfil.txt
a:x1:y:z     #fel formaterad
b:x2:y:z    #fel
c:x3:y:z     #rätt formaterad
d:x4:y:x    #fel
e:x5:y:z    #rätt
[EMAIL PROTECTED] ~/slask $

"\( foobar \)" i sed betyder "Numrera deluttrycket mellan parenteserna".
"\1" betyder "Matcha träffen för första numrerade deluttrycket".

Seduttrycket här betyder alltså:
"Hitta 'x x:y', där x inte innehåller kolon, och ersätt med 'x:y'".

   /Clacke

Till