Débutante en script shell
Fermé
Estelle_23
Messages postés
3
Date d'inscription
mardi 27 mai 2014
Statut
Membre
Dernière intervention
27 mai 2014
-
27 mai 2014 à 16:00
Estelle_23 Messages postés 3 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 27 mai 2014 - 27 mai 2014 à 21:24
Estelle_23 Messages postés 3 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 27 mai 2014 - 27 mai 2014 à 21:24
A voir également:
- Débutante en script shell
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
4 réponses
Utilisateur anonyme
27 mai 2014 à 16:11
27 mai 2014 à 16:11
Bonjour, tu devrais essayer avec les commandes de type "for each" qui te permettront de lancer un traitement particulier sur chaque fichier d'un répertoire.
Ca ressemblerait à
Maintenant faut se concentrer sur le traitement. Je n'ai jamais essayé awk ou autres mais j'y regarderais dès que possible, ça doit pas être sorcier.
Là je suis pas sur ma machine linux je ne peux tester en live mais je te dirais quoi au besoin car je me rappelle d'un exercice plutôt similaire durant les cours.
Ca ressemblerait à
for fichier in $1/*.csv ;
do
traitement "$fichier" ;
done
Maintenant faut se concentrer sur le traitement. Je n'ai jamais essayé awk ou autres mais j'y regarderais dès que possible, ça doit pas être sorcier.
Là je suis pas sur ma machine linux je ne peux tester en live mais je te dirais quoi au besoin car je me rappelle d'un exercice plutôt similaire durant les cours.
Estelle_23
Messages postés
3
Date d'inscription
mardi 27 mai 2014
Statut
Membre
Dernière intervention
27 mai 2014
27 mai 2014 à 16:48
27 mai 2014 à 16:48
Merci à toi, c'est gentil !
j'ai trouvé ceçi sur awk :
cat $i | awk '{print $2 $1}' > $i .new
j'ai trouvé ceçi sur awk :
cat $i | awk '{print $2 $1}' > $i .new
Estelle_23
Messages postés
3
Date d'inscription
mardi 27 mai 2014
Statut
Membre
Dernière intervention
27 mai 2014
27 mai 2014 à 21:24
27 mai 2014 à 21:24
Merci à vous.
J'ai testé vos scripts et cela fonctionne.
Encore merci pour votre aide.
J'ai testé vos scripts et cela fonctionne.
Encore merci pour votre aide.
Utilisateur anonyme
27 mai 2014 à 17:57
27 mai 2014 à 17:57
Ok, voilà j'ai testé, ce script fonctionne chez moi
Donc je crée un répertoire test qui contient
a.csv
b.csv
Dans ces fichiers csv, il y a :
"a","b","c"
"d","e","f"
En appelant :
./script.sh test
J'obtiens dans le répertoire test :
a.csv.new
b.csv.new
Dans lesquels j'ai bien la deuxième et la première colonne.
#!/bin/bash if ! [ -d $1 ]; then echo "Le répertoire $1 n'existe pas." exit 1 fi echo "Traitement du répertoire $1" cd $1 liste='ls *.csv' for fichier in $liste; do echo "Traitement du fichier \"$fichier\"" awk -F "," '{print $2, ",", $1}' $fichier >$fichier.new done
Donc je crée un répertoire test qui contient
a.csv
b.csv
Dans ces fichiers csv, il y a :
"a","b","c"
"d","e","f"
En appelant :
./script.sh test
J'obtiens dans le répertoire test :
a.csv.new
b.csv.new
Dans lesquels j'ai bien la deuxième et la première colonne.