Problème script SHELL
wbailly
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
wbailly Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
wbailly Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aurais besoin d'un petit coup de main au sujet d'un script SHELL qui me sert a enlever tous les sauts de ligne ainsi que les caractères "carrés" qui sont présents dans mes fichiers, le souci étant que je souhaite nommer mes nouveaux fichiers grâce a une variable que j'incrémente au préalable. Le traitement s'effectue, le script me créée bien un fichier 1.txt puis un 2.txt puis un 3.txt etc... Mon problème est que tout mes X.txt créés sont identiques et contiennent chacun tout mes fichiers textes originaux traités mais mis les uns à la suite des autres. Le but étant que le premier fichier traité par le script soit écrit dans 1.txt, mon deuxième fichier traité écrit dans 2.txt, etc...
Voila j'espère avoir été assez clair.
Merci d'avance :)
Voici mon code:
#!/bin/sh
# -*- coding: utf-8 -*-
declare -i nbfiches=27
declare -i i
for((i=1;i<=nbfiches;i++))
do
cat /home/STAGE/newfact/Batiment/* | sed ':s;N;s/^F/\n/;bs' | sed ':s;N;s/?/\n/;bs' | sed ':s;N;s/?/\n/;bs' | sed ':s;N;s/\n\n\n/\n\n/;bs' > /home/STAGE/newfact/Batiment/$i.txt
done
j'aurais besoin d'un petit coup de main au sujet d'un script SHELL qui me sert a enlever tous les sauts de ligne ainsi que les caractères "carrés" qui sont présents dans mes fichiers, le souci étant que je souhaite nommer mes nouveaux fichiers grâce a une variable que j'incrémente au préalable. Le traitement s'effectue, le script me créée bien un fichier 1.txt puis un 2.txt puis un 3.txt etc... Mon problème est que tout mes X.txt créés sont identiques et contiennent chacun tout mes fichiers textes originaux traités mais mis les uns à la suite des autres. Le but étant que le premier fichier traité par le script soit écrit dans 1.txt, mon deuxième fichier traité écrit dans 2.txt, etc...
Voila j'espère avoir été assez clair.
Merci d'avance :)
Voici mon code:
#!/bin/sh
# -*- coding: utf-8 -*-
declare -i nbfiches=27
declare -i i
for((i=1;i<=nbfiches;i++))
do
cat /home/STAGE/newfact/Batiment/* | sed ':s;N;s/^F/\n/;bs' | sed ':s;N;s/?/\n/;bs' | sed ':s;N;s/?/\n/;bs' | sed ':s;N;s/\n\n\n/\n\n/;bs' > /home/STAGE/newfact/Batiment/$i.txt
done
A voir également:
- Problème script SHELL
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
6 réponses
Donc tu as une boucle qui parcourt l'ensemble des fiches présentes dans le répertoire... visiblement pour chaque fiche trouvée, tu fais un cat de tous les fichiers présents (cat ... *). Du coup le fait de retrouver l'ensemble des textes originaux dans chaque fichier .txt me semble venir de là.
Merci de votre réponse HostOfSeraphim ^^
Est-ce que cela veut dire que je dois m'occuper des fichiers un par un?
Car sans le symbole "*" il n'y a plus ce phénomène de récurrence qui me permettait de traiter tous les fichiers en une seule execution...
Est-ce que cela veut dire que je dois m'occuper des fichiers un par un?
Car sans le symbole "*" il n'y a plus ce phénomène de récurrence qui me permettait de traiter tous les fichiers en une seule execution...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
D'accord et bien merci en tout cas, je vais devoir les faire un par un, le script perd ici toute son utilité... Damn !