Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 11h33   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 2
Points : 2
Par défaut Problème Script Awk

Bonjour tout le monde,

Je dois réaliser un script Awk et j'ai des soucis.

Pour être bref, le script doit pour chaque fichier, regarder le 3ème champs de la 1ère ligne, et en fonction de sa valeur, faire un move dans un dossier spécial.

Premier point bloquant, même quand je fais awk -f script.awk *.TXT, il ne traite que le premier fichier du dossier. (C'est au niveau de ma condition if (NR==1) je pense mais je comprends pas pourquoi.)

Et le deuxième point c'est le move en lui même, je n'ai rien trouvé dessus.

Voici ce que j'ai fait pour le moment :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/awk -f
 
BEGIN { print "Beginning of AWK treatment..." }
{ 
 
	if (NR==1) {
 
		if (($3 == "MIDAS") ||($3 == "Midas")) {
 
			print "File MIDAS: " FILENAME " moved."
			cptMIDAS+=1
 
		} else if ($3 == "ABSC") {
 
			print "File ABSC: " FILENAME " moved."
			cptABSC+=1
 
		} else if ($3 == "Swift"){
 
			print "File SWIFT: " FILENAME " moved."
			cptSWIFT+=1
 
		} else {
 
			# print $3
 
		}
 
	 }
 
}
END   { 
 
	print "End AWK treatment. Sum up: " 
	print cptMIDAS " fichier(s) MIDAS traite(s)"  
	print cptABSC " fichier(s) ABSC traite(s)"  
	print cptSWIFT " fichier(s) SWIFT traite(s)" 
	print cptSWIFT+cptMIDAS+cptABSC " fichier(s) traite(s) au total."
 
}
Si vous avez des remarques/suggestions, n'hésitez pas.

Merci à vous.
tutur50000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 12h54   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Bonjour,

ce serait plutôt FNR
et, pour utiliser mv regarde system(), dans le man.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 13h08   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 2
Points : 2
Le FNR marche très bien, je te remercie.

Pour le mv, je vais regarder ça et je te redis.

Merci de ta réponse rapide.
tutur50000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 13h36   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 8
Points : 2
Points : 2
Pour ceux que cela intéresse, je viens de réussir le move.

Code :
system("mv "FILENAME " output/"FILENAME"")
Ce code vous permet de move le fichier que vous traitez dans le sous-dossier "output" du dossier courant.

Encore merci à toi N_BaH !
tutur50000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h53.


 
 
 
 
Partenaires

Hébergement Web