J’ai une liste de fichiers – certains se terminant par .txt et d’autres non. Comment puis-je exécuter une commande pour supprimer tous les fichiers ne se terminant pas par txt?
J’ai essayé:
rm *.[^txt]
Mais ça n’a pas marché?
Si vous utilisez bash, vous pouvez activer l’option shell extglob
:
shopt -s extglob
Vous pouvez ensuite utiliser la syntaxe de modèle étendue !(pattern)
pour faire correspondre tous les noms de fichiers qui ne correspondent pas au pattern
. Tout d’abord, testez-le avec echo
:
echo !(*.txt)
En supposant que la sortie est les fichiers que vous souhaitez supprimer, appuyez sur le déclencheur:
rm !(*.txt)
Essaye ça :
rm !(*.txt)
Il devrait supprimer tous les fichiers ne se terminant pas par .txt
shopt -s extglob
abord shopt -s extglob
pour vous assurer que les fonctionnalités étendues de correspondance de modèle sont activées.
shopt -s
vous montrera tous les comportements de shell optionnels activés.