Rechercher : dans
Par :

Script concaténer fichier

Dernière réponse le 22 jan 2008 à 18:27:33 labas, le 22 jan 2008 à 15:37:17 
 Signaler ce message aux modérateurs

Bonjour,

Je voudrais écrire un script shell qui pour tous les fichiers de format .txt se trouvant dans un répertoire donné, on doit :
1. regarder si le fichier contient « Version : »,
2. alors on compte le nombre de ligne (nb_ligne) qu'il contient excepté la première et la dernière
3. puis on le concaténer dans un fichier et enfin on enrichie un fichier log (nb-ligne, date, fichier) et on déplace le fichier dans répertoire-traiter.
4. sinon (le fichier ne contient pas version) on le déplace dans répertoire-erreur
Exemple de fichier correct:
E;E;E;E
1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5
Version :
On doit concaténer dans all_file.txt avec nb_ligne=3 faire un fichier log
On le copie dans fichier correct

1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5




Exemple de fichier incorrect:
E;E;E;E
1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5
On le déplace dans le répertoire erreur en renseignant le log

TROUVE=0
Début
for fichier in *.TXT do
echo $fichier
echo grep -v "^$" $fichier | wc -l
if [ $? -eq $TROUVE ] then
$nombre_fichier=wc -l $fichier
nomfichier=$fichier
cp $nomfichier $CHEMIN/rep_traiter/
cat $nomfichier > $CHEMIN/rep_operats/FTIERS_ALL.txt
let "nombre_fichier += 1"

else
mv $nomfichier $CHEMIN/rep_erreurs/$nomfichier
fi

done

Merci de lire ce post

Meilleures réponses pour « Script concaténer fichier » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Comment lire un fichier .ps (Postscript) ? Voir2 solutions: Solution 1 Installez PDF Creator (gratuit) (Lors de l'installation, cocher la case "Associer .PS à PDF Converter") Double-cliquez sur le fichier .ps pour le convertir en PDF. Ouvrez le fichier PDF avec votre logiciel habituel...
Fichier CSV VoirFormat CSV Un fichier CSV est un fichier tableur, contenant des données sur chaque ligne séparés par un caractère de séparation (généralement une virgule ou un point-virgule). Comment lire un fichier CSV ? Il peut être lu avec un tableur tel que...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

jipicy, le 22 jan 2008 à 16:38:27

Salut,

Ton énoncé est un peu incohérente par rapport à ton script ;-\

Je verrai plus un truc dans ce genre (j'ai pas testé par contre) :

#! /bin/bash

# Définition variables
DATE=$(date "+%d/%m/%Y")

for fichier in "*.TXT"
do
        grep "Version :" "$fichier" >/dev/null
        retval=$?
        case "$retval" in
        0)      nbre_ligne=$(( $(cat $fichier | wc -l) - 2 ))
                sed -n '1d;$d;p' "$fichier" >> $CHEMIN/rep_operats/FTIERS_ALL.txt
                echo "$fichier : $nbre_ligne : $DATE" >> $CHEMIN/rep_operats/FTIERS_ALL.txt
                mv -f "$fichier" $CHEMIN/rep_traiter/
                ;;
        1)      mv -f "$fichier" $CHEMIN/rep_erreurs/
                ;;
        *)      echo "ERREUR"
                exit 3
                ;;
        esac
done
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

labas, le 22 jan 2008 à 18:26:14

Problème résolu, merci

Répondre à labas

3

 jipicy, le 22 jan 2008 à 18:27:33
  • +1

De rien, mais peut-on avoir un aperçu s'il te plaît, merci ?

Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy
Collection CommentÇaMarche.net