Exploitation tableau

Résolu/Fermé
dino - 23 juil. 2014 à 09:23
 dino - 24 juil. 2014 à 09:45
Bonjour,

j'ai un tableau comme suit
un champ1 script
un champ2 utilité : fonc1
un champ3 repertoir : rep1/2
un champ4 fichier generé :fic1/2/3...etc
un champ5 du nouveau nom de fichier : fich1/2/3...etc

je doit ecrire un script qui doit renomer en fonction du champ "script" le fichier qui genere Champ4 avec le nouveau nom champ5

#Champ 1 Champ2 Champ3 Champ4 Champ5
Script0.sh | fonc1 | Rep1 | fic1 | fich1
Script1.sh | fonc1 | Rep1 | fic2 | fich2
Script1.sh | fonc1 | Rep1 | fic3 | fich3
Script1.sh | fonc1 | Rep1 | fic4 | fich4
Script2.sh | fonc1 | Rep1 | fic5 | fich5
Script2.sh | fonc1 | Rep2 | fic6 | fich6

j'avoue que je fais des boucles ,des test mais je ne m'en sort pas :-(

si qlq a une idée ??

merci beaucoup

15 réponses

dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 12:17
comme ça ?
$ ./k3 Script1.sh
mv fic2 fich2
mv fic3 fich3
mv fic4 fich4
$ cat k3
#!/bin/ksh
awk -F "|" -v n=$1 '$1 ~ n {print "mv " $4, $5}' tableau

pour effectuer les mv :
./k3 Script1.sh | ksh
1
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 10:15
hello
donne un exemple avant après
0
Bonjour,

Des scripts passent (par crontab) et cree des fichiers s'appeles fic1/2/3 ...etc .je dois les renomer suivant le tableau en fct du script qui passe en fich1/2/3...etc

je ne peux pas le faire sur les scripts eux meme, je doit le faire a partir du tableau.

Merci
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 11:19
avec:
#Champ 1 Champ2 Champ3 Champ4 Champ5
Script0.sh | fonc1 | Rep1 | fic1 | fich1
on crée un script Script0.sh qui renomme fic1 en fich1 , etc ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
non.
je doit ecrire un script qui scanne le tableau pour dire si c'est le script0.sh qui est passer (a passer en parmaetre de mon script ) alors renomer le fichier dans le champ4 avec le nom du fichier champ5:

./Monscript.ksh "script0.sh"

Merci
0
Merci ,

J'ai bien reconduit ton idée mais ca me fait :

Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 14:08
des espaces dans les noms de fichiers ?
0
Euh non ...par contre des espaces entre les deux "|" et le nom :

|"espace"fic1"espace"|
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 14:45
non, ils sont ignorés, montre la ligne du tableau
0
voila comme je l'ai

script2.sh | type | rep | fic1 | fich1 | O

le dernier champs :"O" c pour la reprise ou pas ..mais ce n'est pas important.
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
23 juil. 2014 à 16:19
$ cat tableau
script2.sh | type | rep | fic1 | fich1 | O
$ touch fic1
$ ./k3 script2.sh | ksh
$ ls fich1
fich1
0
Bonjour,

Je n'ai pas compris :-( ....je fais le cat de ton script :

awk -F "|" -v n=$1 '$1 ~ n {print "mv " $4 $5}' Tableau_ref.txt

mon tableau ( juste une ligne ..)

script2.sh | type | rep | fic1 | fich1 | O

je lance le script comme suit :

./cop.ksh script2.sh|ksh

j'ai le resultats suivant :
+ awk -F | -v n=script2.sh $1 ~ n {print "mv " $4 $5} Tableau_ref.txt
Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
or: mv [-I] [-d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory


desolé ...:-(
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 412
24 juil. 2014 à 08:33
Salut,

{print "mv " $4 $5}
Il manque une virgule entre $4 et $5 ;-(

{print "mv " $4, $5}
0
idem :
+ awk -F | -v n=script2.sh $1 ~ n {print "mv " $4, $5} Tableau_ref.txt
Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
or: mv [-I] [-d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory

je suis sous AIX 7.1 si ca peut aider ...
0
dubcek Messages postés 18731 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 30 juin 2024 5 615
24 juil. 2014 à 09:12
suivant les claviers, il y a plusieurs | ou ¦
vérifier que celui du script est le même que dans le fichier
0
SUPEEEEEEEEEEEEEEEER ca fct !!

ce n'est pas le "|" ..le pb etait entre la chaise et le claviers :-) ..le champ awk etait pas bon !!

Thx a lot !!!!
0