Soit un répertoire dans lequel sont des fichiers avec des
extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres.
Il est facile d'agir sur tous les fichiers ayant une même extension,
par exemple « rm *.meuh ».
Mais agir sur tous les fichiers sauf les .meuh ?
ou sauf les .meuf et les .zo ?
avec une boucle for peut-être, mais je ne trouve pas
la syntaxe correcte.
Vous savez faire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
didier , dans le message <52f3a517$0$2275$, a écrit :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
didier , dans le message <52f3a517$0$2275$426a74cc@news.free.fr>, a
écrit :
Soit un répertoire dans lequel sont des fichiers avec des
extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres.
Il est facile d'agir sur tous les fichiers ayant une même extension,
par exemple « rm *.meuh ».
Mais agir sur tous les fichiers sauf les .meuh ?
ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
didier , dans le message <52f3a517$0$2275$, a écrit :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
Bruno Ducrot
On 2014-02-06, Nicolas George wrote:
didier , dans le message <52f3a517$0$2275$, a écrit :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
Et pour compléter sur les shells type sh (car parfois, on a pas le choix de son shell) :
Avec ksh, liste tous les fichiers, sauf *.meuh et *.zo : $ echo !(*.meuh|*.zo)
Cette syntaxe fonctionne avec bash avec éventuellement un shopt extglob on
Par contre, je ne pense pas que l'on ait un équivalent pour dash.
Enfin, pour csh, on peut utiliser ^ : # echo ^*.meuh
Dans tous les cas, bien lire les docs des différents shells.
A plus,
-- Bruno Ducrot
A quoi ca sert que Ducrot hisse des carcasses ?
On 2014-02-06, Nicolas George wrote:
didier , dans le message <52f3a517$0$2275$426a74cc@news.free.fr>, a
écrit :
Soit un répertoire dans lequel sont des fichiers avec des
extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres.
Il est facile d'agir sur tous les fichiers ayant une même extension,
par exemple « rm *.meuh ».
Mais agir sur tous les fichiers sauf les .meuh ?
ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
Et pour compléter sur les shells type sh (car parfois, on a pas
le choix de son shell) :
Avec ksh, liste tous les fichiers, sauf *.meuh et *.zo :
$ echo !(*.meuh|*.zo)
Cette syntaxe fonctionne avec bash avec éventuellement un
shopt extglob on
Par contre, je ne pense pas que l'on ait un équivalent pour
dash.
Enfin, pour csh, on peut utiliser ^ :
# echo ^*.meuh
Dans tous les cas, bien lire les docs des différents
shells.
didier , dans le message <52f3a517$0$2275$, a écrit :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ?
Avec zsh, « setopt extendedglob » et utiliser l'opérateur ~.
Et pour compléter sur les shells type sh (car parfois, on a pas le choix de son shell) :
Avec ksh, liste tous les fichiers, sauf *.meuh et *.zo : $ echo !(*.meuh|*.zo)
Cette syntaxe fonctionne avec bash avec éventuellement un shopt extglob on
Par contre, je ne pense pas que l'on ait un équivalent pour dash.
Enfin, pour csh, on peut utiliser ^ : # echo ^*.meuh
Dans tous les cas, bien lire les docs des différents shells.
A plus,
-- Bruno Ducrot
A quoi ca sert que Ducrot hisse des carcasses ?
Benoit Izac
Bonjour,
le 06/02/2014 à 16:07, didier a écrit dans le message <52f3a517$0$2275$ :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ? avec une boucle for peut-être, mais je ne trouve pas la syntaxe correcte.
for f in * do echo "$f" | grep -q '.meuh$' || faire_quelquechose "$f" done
for f in * do echo "$f" | grep -Eq '.(meuh|zo)$' || ls -d "$f" done
-- Benoit Izac
Bonjour,
le 06/02/2014 à 16:07, didier a écrit dans le message
<52f3a517$0$2275$426a74cc@news.free.fr> :
Soit un répertoire dans lequel sont des fichiers avec des
extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres.
Il est facile d'agir sur tous les fichiers ayant une même extension,
par exemple « rm *.meuh ».
Mais agir sur tous les fichiers sauf les .meuh ?
ou sauf les .meuf et les .zo ?
avec une boucle for peut-être, mais je ne trouve pas
la syntaxe correcte.
for f in *
do echo "$f" | grep -q '.meuh$' || faire_quelquechose "$f"
done
for f in *
do echo "$f" | grep -Eq '.(meuh|zo)$' || ls -d "$f"
done
le 06/02/2014 à 16:07, didier a écrit dans le message <52f3a517$0$2275$ :
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ? avec une boucle for peut-être, mais je ne trouve pas la syntaxe correcte.
for f in * do echo "$f" | grep -q '.meuh$' || faire_quelquechose "$f" done
for f in * do echo "$f" | grep -Eq '.(meuh|zo)$' || ls -d "$f" done
-- Benoit Izac
François Patte
Le 06/02/2014 16:07, didier a écrit :
Bonjour,
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ? avec une boucle for peut-être, mais je ne trouve pas la syntaxe correcte. Vous savez faire ?
syntaxiquement, Didier.
en bash:
cd repertoire
export GLOBIGNORE=*.meuh:*.zo
rm *
-- François Patte Université Paris Descartes
Le 06/02/2014 16:07, didier a écrit :
Bonjour,
Soit un répertoire dans lequel sont des fichiers avec des
extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres.
Il est facile d'agir sur tous les fichiers ayant une même extension,
par exemple « rm *.meuh ».
Mais agir sur tous les fichiers sauf les .meuh ?
ou sauf les .meuf et les .zo ?
avec une boucle for peut-être, mais je ne trouve pas
la syntaxe correcte.
Vous savez faire ?
Soit un répertoire dans lequel sont des fichiers avec des extensions diverses, comme .ga , .bu , .zo , .meuh et d'autres. Il est facile d'agir sur tous les fichiers ayant une même extension, par exemple « rm *.meuh ». Mais agir sur tous les fichiers sauf les .meuh ? ou sauf les .meuf et les .zo ? avec une boucle for peut-être, mais je ne trouve pas la syntaxe correcte. Vous savez faire ?
syntaxiquement, Didier.
en bash:
cd repertoire
export GLOBIGNORE=*.meuh:*.zo
rm *
-- François Patte Université Paris Descartes
Nicolas George
François Patte, dans le message <ld0piv$hft$, a écrit :
export GLOBIGNORE=*.meuh:*.zo
Pas d'export, c'est un paramètre interne au shell.
(Heureusement ! Ce serait une faille certainement exploitable sinon.)
François Patte, dans le message <ld0piv$hft$1@talisker.lacave.net>, a
écrit :
export GLOBIGNORE=*.meuh:*.zo
Pas d'export, c'est un paramètre interne au shell.
(Heureusement ! Ce serait une faille certainement exploitable sinon.)
François Patte, dans le message <ld0piv$hft$, a écrit :
export GLOBIGNORE=*.meuh:*.zo
Pas d'export, c'est un paramètre interne au shell.
(Heureusement ! Ce serait une faille certainement exploitable sinon.)
didier
Le Thu, 06 Feb 2014 15:07:03 +0000, didier a écrit :
Bonjour,
Re bonsoir,
et merci à tous. Marrant de voir le nombre de solutions possibles pour faire un même truc... « rm !(*.meuh|*.zo) », la seule que j'ai eu le temps d'essayer, fonctionne parfaitement sous bash, impec !
impeccablement, Didier.
Le Thu, 06 Feb 2014 15:07:03 +0000, didier a écrit :
Bonjour,
Re bonsoir,
et merci à tous.
Marrant de voir le nombre de solutions possibles
pour faire un même truc...
« rm !(*.meuh|*.zo) », la seule que j'ai eu le temps
d'essayer, fonctionne parfaitement sous bash, impec !
Le Thu, 06 Feb 2014 15:07:03 +0000, didier a écrit :
Bonjour,
Re bonsoir,
et merci à tous. Marrant de voir le nombre de solutions possibles pour faire un même truc... « rm !(*.meuh|*.zo) », la seule que j'ai eu le temps d'essayer, fonctionne parfaitement sous bash, impec !