Le Mon, 13 Oct 2003 09:20:03 +0200, Al 1 écrivait : [...]
mkdir to_keep awk '{print $2}' liste_fichiers | sort | uniq | while read i; do mv $i to_keep done
Ou
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
-- Stéphane
Al 1
Stephane CHAZELAS a écrit:
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
merci mais celui-là j'ai du mal à le comprendre: les lignes seront doublées par le awk, donc ?! il y aura des lignes en double et des lignes en triple, et aucune ligne seule ?
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&g' | xargs rm -f
Stephane CHAZELAS a écrit:
{ awk '{print $2 "n" $2}' liste_fichiers; ls
} | sort | uniq -u | sed 's/./\&/g' | xargs rm -f
merci
mais celui-là j'ai du mal à le comprendre:
les lignes seront doublées par le awk, donc ?!
il y aura des lignes en double et des lignes en triple, et aucune ligne
seule ?
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls
} | sort | uniq -u | sed 's/./\&g' | xargs rm -f
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
merci mais celui-là j'ai du mal à le comprendre: les lignes seront doublées par le awk, donc ?! il y aura des lignes en double et des lignes en triple, et aucune ligne seule ?
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&g' | xargs rm -f
Stephane CHAZELAS
Le Mon, 13 Oct 2003 15:43:36 +0200, Al 1 écrivait :
Stephane CHAZELAS a écrit:
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
mais celui-là j'ai du mal à le comprendre: les lignes seront doublées par le awk, donc ?! il y aura des lignes en double et des lignes en triple, et aucune ligne seule ?
Ben si, les fichiers à effacer retournés par "ls". (note que j'ai pas testé ma solution, toutefois).
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&g' | xargs rm -f
Oui, afficher 2 fois "$2", c'était pour plus de sureté (au moins on est sur que les "$2" ne sont pas effacés (par exemple, si tu y avais mis un "dotfile", il n'aurait pas été affiché par "ls", il se serait trouvé en simple et sélectionné par "uniq -u" et donc effacé alors qu'il était justement censé etre préservé).
-- Stéphane
Le Mon, 13 Oct 2003 15:43:36 +0200, Al 1 <ol1@free.xx> écrivait :
Stephane CHAZELAS a écrit:
{ awk '{print $2 "n" $2}' liste_fichiers; ls
} | sort | uniq -u | sed 's/./\&/g' | xargs rm -f
mais celui-là j'ai du mal à le comprendre:
les lignes seront doublées par le awk, donc ?!
il y aura des lignes en double et des lignes en triple, et aucune ligne
seule ?
Ben si, les fichiers à effacer retournés par "ls".
(note que j'ai pas testé ma solution, toutefois).
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls
} | sort | uniq -u | sed 's/./\&g' | xargs rm -f
Oui, afficher 2 fois "$2", c'était pour plus de sureté (au
moins on est sur que les "$2" ne sont pas effacés (par exemple,
si tu y avais mis un "dotfile", il n'aurait pas été affiché par
"ls", il se serait trouvé en simple et sélectionné par "uniq
-u" et donc effacé alors qu'il était justement censé etre
préservé).
Le Mon, 13 Oct 2003 15:43:36 +0200, Al 1 écrivait :
Stephane CHAZELAS a écrit:
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
mais celui-là j'ai du mal à le comprendre: les lignes seront doublées par le awk, donc ?! il y aura des lignes en double et des lignes en triple, et aucune ligne seule ?
Ben si, les fichiers à effacer retournés par "ls". (note que j'ai pas testé ma solution, toutefois).
j'aurais dit
{ awk '{print $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&g' | xargs rm -f
Oui, afficher 2 fois "$2", c'était pour plus de sureté (au moins on est sur que les "$2" ne sont pas effacés (par exemple, si tu y avais mis un "dotfile", il n'aurait pas été affiché par "ls", il se serait trouvé en simple et sélectionné par "uniq -u" et donc effacé alors qu'il était justement censé etre préservé).
-- Stéphane
Al 1
Stephane CHAZELAS a écrit:
Tu peux faire (zsh, bash, ksh sur certains systemes)
comm -2 -3 <(find . -type f -print | sort) <(sort list.txt) | sed 's/./&/g' | xargs rm -f
(en supposant que list.txt contienne: ./fic1.txt ./dir/fic2.txt ...
hum, cette solution m'a effacé tous mes fichiers ! j'ai retenu la 3eme (avec le awk '{print $2"n"$2'}), merci
Stephane CHAZELAS a écrit:
Tu peux faire (zsh, bash, ksh sur certains systemes)
comm -2 -3 <(find . -type f -print | sort) <(sort list.txt)
| sed 's/./\&/g' | xargs rm -f
(en supposant que list.txt contienne:
./fic1.txt
./dir/fic2.txt
...
hum, cette solution m'a effacé tous mes fichiers !
j'ai retenu la 3eme (avec le awk '{print $2"n"$2'}), merci
Tu peux faire (zsh, bash, ksh sur certains systemes)
comm -2 -3 <(find . -type f -print | sort) <(sort list.txt) | sed 's/./&/g' | xargs rm -f
(en supposant que list.txt contienne: ./fic1.txt ./dir/fic2.txt ...
hum, cette solution m'a effacé tous mes fichiers ! j'ai retenu la 3eme (avec le awk '{print $2"n"$2'}), merci
kanze
Stephane CHAZELAS wrote in message news:...
Le Mon, 13 Oct 2003 09:20:03 +0200, Al 1 écrivait : [...]
mkdir to_keep awk '{print $2}' liste_fichiers | sort | uniq | while read i; do mv $i to_keep done
Ou
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
Intéressant, mais j'aurais crû que quelque chose du genre :
ls | diff - liste_fichiers | sed -n 's/^< //p' | xargs rm -f
aurait été bien plus simple. À condition évidemment que la liste des fichiers soit triée aussi (mais sinon, c'est assez facile à faire aussi).
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Stephane CHAZELAS <stephane_chazelas@yahoo.fr> wrote in message
news:<slrnbol3r4.58u.stephane_chazelas@pcchazelas.free.fr>...
Le Mon, 13 Oct 2003 09:20:03 +0200, Al 1 <ol1@free.xx> écrivait :
[...]
mkdir to_keep
awk '{print $2}' liste_fichiers | sort | uniq | while read i; do
mv $i to_keep
done
Ou
{ awk '{print $2 "n" $2}' liste_fichiers; ls
} | sort | uniq -u | sed 's/./\&/g' | xargs rm -f
Intéressant, mais j'aurais crû que quelque chose du genre :
ls | diff - liste_fichiers | sed -n 's/^< //p' | xargs rm -f
aurait été bien plus simple. À condition évidemment que la liste des
fichiers soit triée aussi (mais sinon, c'est assez facile à faire
aussi).
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Le Mon, 13 Oct 2003 09:20:03 +0200, Al 1 écrivait : [...]
mkdir to_keep awk '{print $2}' liste_fichiers | sort | uniq | while read i; do mv $i to_keep done
Ou
{ awk '{print $2 "n" $2}' liste_fichiers; ls } | sort | uniq -u | sed 's/./&/g' | xargs rm -f
Intéressant, mais j'aurais crû que quelque chose du genre :
ls | diff - liste_fichiers | sed -n 's/^< //p' | xargs rm -f
aurait été bien plus simple. À condition évidemment que la liste des fichiers soit triée aussi (mais sinon, c'est assez facile à faire aussi).
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Stephane CHAZELAS
Le 14 Oct 2003 06:18:19 -0700, écrivait : [...]
Intéressant, mais j'aurais crû que quelque chose du genre :
ls | diff - liste_fichiers | sed -n 's/^< //p' | xargs rm -f
aurait été bien plus simple. À condition évidemment que la liste des fichiers soit triée aussi (mais sinon, c'est assez facile à faire aussi).
"comm" est plus adapté que "diff" ici, voir ma première réponse.
-- Stéphane
Le 14 Oct 2003 06:18:19 -0700, kanze@gabi-soft.fr <kanze@gabi-soft.fr> écrivait :
[...]
Intéressant, mais j'aurais crû que quelque chose du genre :
ls | diff - liste_fichiers | sed -n 's/^< //p' | xargs rm -f
aurait été bien plus simple. À condition évidemment que la liste des
fichiers soit triée aussi (mais sinon, c'est assez facile à faire
aussi).
"comm" est plus adapté que "diff" ici, voir ma première réponse.