Awk script

Alex -  
 Alex -
Bonjour,

J'ai un problème lors de l'exécution du script suivant:

#!/bin/bash
# fileinfo.sh

FICH=$1

cat $FICH | awk -F";" '{print $1 " " $3}' > temp
cat temp | awk '{print $2 " " $3 " " $1 " " $4}'>$FICH
rm temp


Je veux traiter un log du type :

1307727376600;55;49092	48643	-59	100
1307727376604;15;45088	50737	-67	100
1307727376608;16;46808	50737	-59	100


pour obtenir :
49092 48643 1307727376600 -59
45088 50737 1307727376604 -67
46808 50737 1307727376608 -59


Mais après exécution j'obtiens deux lignes vides à la suite à plusieurs endroits du fichier.
Merci d'avance pour votre aide

3 réponses

  1. Utilisateur anonyme
     
    salut,

    qu'est -ce tu t'em... avec un fichier temporaire ?
    regarde comment fonctionne la fonction split, et les tableaux en awk.
    manuel Awk
    awk est un langage de script, tu n'es pas obligé de passer par bash pour l'utiliser.
    0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat fich
    1307727376600;55;49092  48643   -59     100
    1307727376604;15;45088  50737   -67     100
    1307727376608;16;46808  50737   -59     100
    
    $ awk -F';' '{ print $3,$4,$1,$5 }' < <(sed 's/\s\+/;/g' fich)
    49092 48643 1307727376600 -59
    45088 50737 1307727376604 -67
    46808 50737 1307727376608 -59

    ;-))
    0