Re: un script pour traitement par batch
Guy Roussin a écrit, mercredi 11 mars 2009, à 16:10 :
> Bonjour,
bonjour,
> Moi ce que je fais dans ces cas là, c'est que j'utilise mon éditeur de
> texte préféré (vi) pour transformer la liste de fichier texte en un
> script bash
> avec un :%s/\(.*\)/cp "\1" \/home\/mydir/
...ou utiliser les commandes rectangulaires d'Emacs :) --- mais Sed fait
aussi le même travail.
> Je rajoute la 1ere ligne à la main :
> #!/bin/bash
>
> je rend exécutable et J'exécute le fichier ...
Tu peux aussi « sourcer » ce fichier sans ajouter la 1ere ligne...
> Je sais pas si c'est pertinent mais ça le fait.
Bernard a parlé de la sortie de « ls -l », qui contient des colonnes
parasites à élimiter (cf. cut ou sed), mais a peut-être confondu avec
« ls -1 » ?
Si le fichier « liste » contient un nom (avec peut-être espace(s), mais
sans retour ligne, bien sûr) de fichier par ligne, sans caractères
parasites,
prefix="/rep/source/"
while read nom ; do
cp "${prefix}${nom}" /home/mydir/
done <liste
devrait faire le travail ; il est possible d'optimiser...
Autre piste : des commandes acceptent en paramètre une liste de noms
(rsync ou tar, option --files-from=FILE).
--
Jacques L'helgoualc'h
Reply to: