Awk script

Fermé
Alex - 16 juin 2011 à 07:57
 Alex - 16 juin 2011 à 10:23
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


A voir également:

3 réponses

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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
16 juin 2011 à 08:55
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
Ça fonctionne ^^
Merci !
0