Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

un script pour traitement par batch

15 réponses
Avatar
Bernard
Bonjour à tous,

Je souhaite copier à part un certain nombre de fichiers choisis dans un
répertoire. Sur les 1200 fichiers que contient ce répertoire, j'en ai
sélectionné un peu plus de 400 de la liste, et j'ai éliminé les
autres... Je les éliminés d'une liste récupérée via 'ls -l >
nomliste.txt', et non pas du répertoire ou d'une copie de celui-ci, ce
qu'il aurait mieux valu que je fasse. Ce tri sur la liste m'ayant pris
plusieurs heures de travail fastidieux, j'espère éviter de devoir le
recommencer sur le contenu du répertoire. En fait, comme cette liste
représentait déjà une sélection du contenu dudit répertoire, c'est
environ 12500 fichiers qu'il me faudrait à nouveau trier.

Comment copier, à partir de cette liste ? S'il ne s'était agit que
d'une ou deux douzaines de fichiers, je n'eusse pas été embarrassé de
faire 2 ou 3 douzaines de fois la manip suivante :

cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir

mais là, avec plus de 400 fichiers, c'est un peu fastidieux à faire
ainsi. Alors, d'après ma liste de fichiers (chaque ligne comprenant un
fichier avec la commande 'cp' que j'ai ajouté en chaque tête de ligne
grâce à une manip dans un tableau OO_calc), comment est-ce que je peux
faire un traitement en batch ?

Un problème du même genre s'était posé à moi il y a 3 ou 4 ans, et je
l'avais résolu par une petite routine écrite en Pascal (Free Pascal), ce
qui avait été possible avec une routine 'for n=x to y do' parce que les
noms de fichiers étaient faits de numéros croissants, ce qui n'est pas
le cas pour mon problème actuel. En fait, les fichiers à traiter sont
composés de chaînes de caractères avec des espaces (ce qui m'a obligé de
les inclure entre des ' '), car il s'agit d'un archivage d'e-mails reçus
via StarOffice 5.1 et 5.2, sur mon ancien ordi.

Merci d'avance pour toute suggestion pertinente.


Bernard

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2
Avatar
Guy Roussin
Bonjour,

Moi ce que je fais dans ces cas là, c'est que j'utilise mon éditeur d e
texte préféré (vi) pour transformer la liste de fichier texte en un
script bash
avec un :%s/(.*)/cp "1" /home/mydir/

Je rajoute la 1ere ligne à la main :
#!/bin/bash

je rend exécutable et J'exécute le fichier ...

Je sais pas si c'est pertinent mais ça le fait.

Guy

Bernard a écrit :
Bonjour à tous,

Je souhaite copier à part un certain nombre de fichiers choisis dans
un répertoire. Sur les 1200 fichiers que contient ce répertoire, j' en
ai sélectionné un peu plus de 400 de la liste, et j'ai éliminé les
autres... Je les éliminés d'une liste récupérée via 'ls -l >
nomliste.txt', et non pas du répertoire ou d'une copie de celui-ci, c e
qu'il aurait mieux valu que je fasse. Ce tri sur la liste m'ayant pris
plusieurs heures de travail fastidieux, j'espère éviter de devoir l e
recommencer sur le contenu du répertoire. En fait, comme cette liste
représentait déjà une sélection du contenu dudit répertoire, c'est
environ 12500 fichiers qu'il me faudrait à nouveau trier.

Comment copier, à partir de cette liste ? S'il ne s'était agit qu e
d'une ou deux douzaines de fichiers, je n'eusse pas été embarrassé de
faire 2 ou 3 douzaines de fois la manip suivante :

cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir

mais là, avec plus de 400 fichiers, c'est un peu fastidieux à faire
ainsi. Alors, d'après ma liste de fichiers (chaque ligne comprenant u n
fichier avec la commande 'cp' que j'ai ajouté en chaque tête de lig ne
grâce à une manip dans un tableau OO_calc), comment est-ce que je p eux
faire un traitement en batch ?

Un problème du même genre s'était posé à moi il y a 3 ou 4 an s, et je
l'avais résolu par une petite routine écrite en Pascal (Free Pascal ),
ce qui avait été possible avec une routine 'for n=x to y do' parc e que
les noms de fichiers étaient faits de numéros croissants, ce qui n' est
pas le cas pour mon problème actuel. En fait, les fichiers à traite r
sont composés de chaînes de caractères avec des espaces (ce qui m 'a
obligé de les inclure entre des ' '), car il s'agit d'un archivage
d'e-mails reçus via StarOffice 5.1 et 5.2, sur mon ancien ordi.

Merci d'avance pour toute suggestion pertinente.




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
mathias dufresne
--0015174be84c536ad00464d95780
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

De mon côté je suis fan de for (chacun son truc ;) :

for fichier in `cat nomliste.txt`; do cp /la/source/du/$fichier /home/mydir ;
done

en version script c'est plus joli :
#!/bin/bash

for fichier in `cat nomliste.txt`
do
cp /la/source/du/$fichier /home/mydir
done

à plus

Le 11 mars 2009 16:10, Guy Roussin a écrit :

Bonjour,

Moi ce que je fais dans ces cas là, c'est que j'utilise mon éditeur d e
texte préféré (vi) pour transformer la liste de fichier texte en un script
bash
avec un :%s/(.*)/cp "1" /home/mydir/

Je rajoute la 1ere ligne à la main :
#!/bin/bash

je rend exécutable et J'exécute le fichier ...

Je sais pas si c'est pertinent mais ça le fait.

Guy

Bernard a écrit :

Bonjour à tous,

Je souhaite copier à part un certain nombre de fichiers choisis dans u n
répertoire. Sur les 1200 fichiers que contient ce répertoire, j'en a i
sélectionné un peu plus de 400 de la liste, et j'ai éliminé les autres... Je
les éliminés d'une liste récupérée via 'ls -l > nomliste.txt', et non pas du
répertoire ou d'une copie de celui-ci, ce qu'il aurait mieux valu que je
fasse. Ce tri sur la liste m'ayant pris plusieurs heures de travail
fastidieux, j'espère éviter de devoir le recommencer sur le contenu du
répertoire. En fait, comme cette liste représentait déjà une s élection du
contenu dudit répertoire, c'est environ 12500 fichiers qu'il me faudra it à
nouveau trier.

Comment copier, à partir de cette liste ? S'il ne s'était agit que d'une
ou deux douzaines de fichiers, je n'eusse pas été embarrassé de fa ire 2 ou 3
douzaines de fois la manip suivante :

cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir

mais là, avec plus de 400 fichiers, c'est un peu fastidieux à faire ainsi.
Alors, d'après ma liste de fichiers (chaque ligne comprenant un fichie r avec
la commande 'cp' que j'ai ajouté en chaque tête de ligne grâce à une manip
dans un tableau OO_calc), comment est-ce que je peux faire un traitement en
batch ?

Un problème du même genre s'était posé à moi il y a 3 ou 4 ans , et je
l'avais résolu par une petite routine écrite en Pascal (Free Pascal) , ce qui
avait été possible avec une routine 'for n=x to y do' parce que le s noms de
fichiers étaient faits de numéros croissants, ce qui n'est pas le ca s pour
mon problème actuel. En fait, les fichiers à traiter sont composés de
chaînes de caractères avec des espaces (ce qui m'a obligé de les i nclure
entre des ' '), car il s'agit d'un archivage d'e-mails reçus via StarO ffice
5.1 et 5.2, sur mon ancien ordi.

Merci d'avance pour toute suggestion pertinente.




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact






--0015174be84c536ad00464d95780
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

De mon côté je suis fan de for (chacun son truc ;) :<br><br>for fichier in `cat nomliste.txt`; do cp /la/source/du/$fichier /home/mydir; done<br>< br>en version script c&#39;est plus joli :<br>#!/bin/bash<br><br>for fichie r in `cat nomliste.txt`<br>
do<br>    cp /la/source/du/$fichier /home/mydir<br>done<br><br>à pl us<br><br><div class="gmail_quote">Le 11 mars 2009 16:10, Guy Roussin <sp an dir="ltr">&lt;<a href="mailto:">guy.rous </a>&gt;</span> a écrit :<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Bonjour,<br>
<br>
Moi ce que je fais dans ces cas là, c&#39;est que j&#39;utilise mon édi teur de<br>
texte préféré (vi) pour transformer la liste de fichier texte en un s cript bash<br>
avec un :%s/(.*)/cp &quot;1&quot; /home/mydir/<br>
<br>
Je rajoute la 1ere ligne à la main :<br>
#!/bin/bash<br>
<br>
je rend exécutable et J&#39;exécute le fichier ...<br>
<br>
Je sais pas si c&#39;est pertinent mais ça le fait.<br>
<br>
Guy<br>
<br>
Bernard a écrit :<div class="im"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Bonjour à tous,<br>
<br>
Je souhaite copier à part un certain nombre de fichiers choisis dans un r épertoire. Sur les 1200 fichiers que contient ce répertoire, j&#39;en a i sélectionné un peu plus de 400 de la liste, et j&#39;ai éliminé l es autres... Je les éliminés d&#39;une liste récupérée via &#39;l s -l &gt; nomliste.txt&#39;, et non pas du répertoire ou d&#39;une copie de celui-ci, ce qu&#39;il aurait mieux valu que je fasse. Ce tri sur la lis te m&#39;ayant pris plusieurs heures de travail fastidieux, j&#39;espère éviter de devoir le recommencer sur le contenu du répertoire. En fait, comme cette liste représentait déjà une sélection du contenu dudit répertoire, c&#39;est environ 12500 fichiers qu&#39;il me faudrait à no uveau trier.<br>

<br>
Comment copier, à partir de cette liste ?   S&#39;il ne s&#39;était a git que d&#39;une ou deux douzaines de fichiers, je n&#39;eusse pas été embarrassé de faire 2 ou 3 douzaines de fois la manip suivante :<br>
<br>
cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir<br>
<br>
mais là, avec plus de 400 fichiers, c&#39;est un peu fastidieux à faire ainsi. Alors, d&#39;après ma liste de fichiers (chaque ligne comprenant un fichier avec la commande &#39;cp&#39; que j&#39;ai ajouté en chaque t ête de ligne grâce à une manip dans un tableau OO_calc), comment est- ce que je peux faire un traitement en batch ?<br>

<br>
Un problème du même genre s&#39;était posé à moi il y a 3 ou 4 an s, et je l&#39;avais résolu par une petite routine écrite en Pascal (Fr ee Pascal), ce qui avait été possible avec une routine &#39;for n=x t o y do&#39; parce que les noms de fichiers étaient faits de numéros cro issants, ce qui n&#39;est pas le cas pour mon problème actuel. En fait, l es fichiers à traiter sont composés de chaînes de caractères avec d es espaces (ce qui m&#39;a obligé de les inclure entre des &#39; &#39;), car il s&#39;agit d&#39;un archivage d&#39;e-mails reçus via StarOffice 5 .1 et 5.2, sur mon ancien ordi.<br>

<br>
Merci d&#39;avance pour toute suggestion pertinente.<br>
<br>
</blockquote>
<br></div><div><div></div><div class="h5">
-- <br>
Lisez la FAQ de la liste avant de poser une question :<br>
<a href="http://wiki.debian.org/fr/FrenchLists" target="_blank">http:// wiki.debian.org/fr/FrenchLists</a><br>
Vous pouvez aussi ajouter le mot ``spam&#39;&#39; dans vos champs &quot;Fro m&quot; et<br>
&quot;Reply-To:&quot;<br>
<br>
To UNSUBSCRIBE, email to <a href="mailto: .debian.org" target="_blank">< /a><br>
with a subject of &quot;unsubscribe&quot;. Trouble? Contact <a href="mail to:" target="_blank"> rg</a><br>
<br>
</div></div></blockquote></div><br>

--0015174be84c536ad00464d95780--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Francois Bottin
Bernard wrote:
Bonjour à tous,

Je souhaite copier à part un certain nombre de fichiers choisis dans un
répertoire. Sur les 1200 fichiers que contient ce répertoire, j'en ai
sélectionné un peu plus de 400 de la liste, et j'ai éliminé les
autres... Je les éliminés d'une liste récupérée via 'ls -l >
nomliste.txt', et non pas du répertoire ou d'une copie de celui-ci, ce
qu'il aurait mieux valu que je fasse. Ce tri sur la liste m'ayant pris
plusieurs heures de travail fastidieux, j'espère éviter de devoir le
recommencer sur le contenu du répertoire. En fait, comme cette liste
représentait déjà une sélection du contenu dudit répertoire, c'est
environ 12500 fichiers qu'il me faudrait à nouveau trier.

Comment copier, à partir de cette liste ? S'il ne s'était agit que
d'une ou deux douzaines de fichiers, je n'eusse pas été embarrassé de
faire 2 ou 3 douzaines de fois la manip suivante :

cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir



xargs -i cp /mnt/exthd/{} /home/mydir < nomliste.txt

Attention : ça ne marchera pas si tu as des espaces dans les noms de
fichier ! Si c'est le cas, il faut changer la variable IFS.

François.

PS : si la sélection des fichiers pouvait se traduire en règles, un
petit tour vers l'aide de find aurait pu être intéressante...

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
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

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Romaric DEFAUX
Bernard a écrit :
Bonjour à tous,


Salut !

Je souhaite copier à part un certain nombre de fichiers choisis dans
un répertoire. Sur les 1200 fichiers que contient ce répertoire, j' en
ai sélectionné un peu plus de 400 de la liste, et j'ai éliminé les
autres... Je les éliminés d'une liste récupérée via 'ls -l >
nomliste.txt', et non pas du répertoire ou d'une copie de celui-ci, c e
qu'il aurait mieux valu que je fasse. Ce tri sur la liste m'ayant pris
plusieurs heures de travail fastidieux, j'espère éviter de devoir l e
recommencer sur le contenu du répertoire. En fait, comme cette liste
représentait déjà une sélection du contenu dudit répertoire, c'est
environ 12500 fichiers qu'il me faudrait à nouveau trier.

Comment copier, à partir de cette liste ? S'il ne s'était agit qu e
d'une ou deux douzaines de fichiers, je n'eusse pas été embarrassé de
faire 2 ou 3 douzaines de fois la manip suivante :

cp /mnt/exthd/copié_collé_du_nom_du_fichier.sdm /home/mydir

mais là, avec plus de 400 fichiers, c'est un peu fastidieux à faire
ainsi. Alors, d'après ma liste de fichiers (chaque ligne comprenant u n
fichier avec la commande 'cp' que j'ai ajouté en chaque tête de lig ne
grâce à une manip dans un tableau OO_calc), comment est-ce que je p eux
faire un traitement en batch ?

Un problème du même genre s'était posé à moi il y a 3 ou 4 an s, et je
l'avais résolu par une petite routine écrite en Pascal (Free Pascal ),
ce qui avait été possible avec une routine 'for n=x to y do' parc e que
les noms de fichiers étaient faits de numéros croissants, ce qui n' est
pas le cas pour mon problème actuel. En fait, les fichiers à traite r
sont composés de chaînes de caractères avec des espaces (ce qui m 'a
obligé de les inclure entre des ' '), car il s'agit d'un archivage
d'e-mails reçus via StarOffice 5.1 et 5.2, sur mon ancien ordi.



for i in $(cat ta_liste);do echo $i;done
Tu peux remplacer echo $i par :
cp /mnt/exthd/$i /home/mydir/.

Ce qui donnerait :
for i in $(cat ta_liste);do cp /mnt/exthd/$i /home/mydir/.;done
Merci d'avance pour toute suggestion pertinente.


Bernard



Romaric

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
jeep-nospam
>>>> "JL" <=> Jacques L'helgoualc'h









Le(On) Wed, 11 Mar 2009 16:42:18 +0100,
Jacques L'helgoualc'h écrivait(wrote) :


JL> Guy Roussin a écrit, mercredi 11 mars 2009, à 16:10 :
>> Bonjour,
Päreil,

[...]
JL> ...ou utiliser les commandes rectangulaires d'Emacs :) ---
JL> mais Sed fait aussi le même travail.
Emacs/sed rulez ! ;)

[...]
JL> Bernard a parlé de la sortie de « ls -l », qui contient des
JL> colonnes parasites à élimiter (cf. cut ou sed), mais a
Je me demande si 'awk' ne serait pas plus indiqué que 'cut' ou 'sed'
dans ce cas-là ; plus simple surtout, un truc du genre :

sortie_du_ls_-l |awk '{print $9}'

['$9' = 9ème colonne <=> nom du fichier dans un 'ls -l' « normal »]

[...]

Jeep.

--
Entendu sur France Inter :
Journaliste : Vous préférez cliquer sur le mulot ou sur la souris ?
Jospin : Les deux, je cohabite !
-+- in: Guide du Cabaliste Usenet - Bien cohabiter avec son mulot -+-

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
JP Bochet (jeep) a écrit, mercredi 11 mars 2009, à 18:17 :
>>>> "JL" <=> Jacques L'helgoualc'h
[...]
JL> ...ou utiliser les commandes rectangulaires d'Emacs :) ---
JL> mais Sed fait aussi le même travail.
Emacs/sed rulez ! ;)



Sed remplace vi :)

[...]
JL> Bernard a parlé de la sortie de « ls -l », qui contient des
JL> colonnes parasites à élimiter (cf. cut ou sed), mais a
Je me demande si 'awk' ne serait pas plus indiqué que 'cut' ou 'sed'
dans ce cas-là ; plus simple surtout, un truc du genre :

sortie_du_ls_-l |awk '{print $9}'



Ben non, Bernard a annoncé des espaces dans les noms de fichiers :/

['$9' = 9ème colonne <=> nom du fichier dans un 'ls -l' « normal »]



Plutôt quelque chose comme « sed -re 's/^.{42}//' » ou son équivalent
cut... Sans ces *!@£ espaces, « awk '{print $NF}' » éviterait de compter
les champs.
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Romaric DEFAUX a écrit, mercredi 11 mars 2009, à 16:16 :

Bernard a écrit :
Bonjour à tous,


Salut !



+1

[...] En fait, les fichiers à traiter
sont composés de chaînes de caractères avec des espaces (ce qui m'a
obligé de les inclure entre des ' '), car il s'agit d'un archivage
d'e-mails reçus via StarOffice 5.1 et 5.2, sur mon ancien ordi.



for i in $(cat ta_liste);do echo $i;done



Ben non :

~ $ for i in $(cat <<PASGLOP
]toto titi
]tata tutu
]PASGLOP);do echo $i;done


toto
titi
tata
tutu


~ $ cat <<PASGLOP |
toto titi
tata tutu
PASGLOP
while read i;do echo $i;done
toto titi
tata tutu

et il faudra « quoter » la valeur :

cp "/chemin/$i" cible/

--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
jeep-ml
>>>> "JL" <=> Jacques L'helgoualc'h









Le(On) Wed, 11 Mar 2009 19:36:51 +0100,
Jacques L'helgoualc'h écrivait(wrote) :

Kénavo aotrou L'helgoualc'h, ;)

[...]
JL> ...ou utiliser les commandes rectangulaires d'Emacs :) ---
JL> mais Sed fait aussi le même travail.
>> Emacs/sed rulez ! ;)

JL> Sed remplace vi :)

Chuuuttt [pô vendredi] hi hi ! ;)

[...]
>> Je me demande si 'awk' ne serait pas plus indiqué que 'cut' ou
>> 'sed' dans ce cas-là ; plus simple surtout, un truc du genre :
>>
>> sortie_du_ls_-l |awk '{print $9}'

JL> Ben non, Bernard a annoncé des espaces dans les noms de
JL> fichiers :/

Argggggggh !
P't1 ... je l'avais lu en plus ... pô ma journée à moi aujourd'hui !
:O

Ben désolé, c'est en fait inapplicable dans ce cas de figure (à
moins que *tous* les fichiers aient le même nombre d'espaces).

>> ['$9' = 9ème colonne <=> nom du fichier dans un 'ls -l' «
>> normal »]

JL> Plutôt quelque chose comme « sed -re 's/^.{42}//' » ou son
JL> équivalent cut... Sans ces *!@£ espaces, « awk '{print
JL> $NF}' » éviterait de compter les champs.

Arf... je la connaissais pas celle-là, merci Jacques ! ;)

[clickety-clic, /me RTFM]

P't1, j'avais oublié les lignes blanches, mais j'y ai pensé avant le
C-c C-c ! ;)

Bonne soirée !

Jeep.


--

11:45 Qui veux m'aider a ecrire ma these? Que en Latex, bien sur.
11:48 une these sur les capotes?

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Pierre Meurisse
Bonjour,

On Wed, Mar 11, 2009 at 07:45:28PM +0100, Jacques L'helgoualc'h wrote:
...
Ben non :

~ $ for i in $(cat <<PASGLOP
> ]toto titi
> ]tata tutu
> ]PASGLOP);do echo $i;done
toto
titi
tata
tutu


~ $ cat <<PASGLOP |
toto titi
tata tutu
PASGLOP
while read i;do echo $i;done
toto titi
tata tutu

et il faudra « quoter » la valeur :

cp "/chemin/$i" cible/



On peut aussi supprimer les espaces et autre cochonneries des noms des
fichiers en utilisant detox, puis adapter le fichier contenant la liste
des noms.
Cela présenterait l'avantage de faciliter un éventuel traitement
ultérieur.

--
Pierre Meurisse

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2