J'ai un dossier avec beaucoup d'images.
Mon client m'a envoyé une liste des images rejetées que je dois supprimer de ce dossier.
La liste est comme ceci: _001,_002,_003,_004,_006,_007,RAM08953,RAM08995,RAM08996,RAM09039,RAM09060,RAM09087,RAM09101,RAM09104,RAM09115,RAM09126,RAM09170,RAM09171,RAM09172,RAM09176,RAM09188
.
Comment puis-je facilement exécuter quelque chose qui supprime ces fichiers, ou déplace ces fichiers dans un nouveau dossier ou quelque chose sans le faire à la main? Il peut s'agir d'une application, d'un script shell ou de toute autre astuce.
cat
et|
commeawk
va lire le fichier en tant que argument , c'est-à-dire,"$(awk '{gsub(/,/, "\n")}1' foo.csv)"
, est tout ce qui est nécessaire.awk
mais une fois dans une lune bleue et ça coule avec mon style de codage. Il n'y a rien d'inutile à cela.awk
que souvent et pendant que monawk
commander est plus compact, néanmoins, ce n’était pas l’argument principal. Je ne fais que souligner ce qui est généralement considéré comme un très mauvais paradigme de programmation. FWIW Moi aussi, j’ai l'habitude de coder de la même manière, mais j'ai appris à le faire mieux à la suite de commentaires comme ceux-là.Pour supprimer une liste de noms de fichiers séparés par des virgules d'un dossier, vous pouvez utiliser les éléments suivants:
Remplacer
file.jpg,second.jpg,…
avec votre liste de fichiers séparés par des virgules.Remplacer
/path/to/folder
avec le chemin d'accès au dossier contenant les images.tr , '\n'
remplace les virgules dans l'entrée par de nouvelles lignes.xargs
prend les lignes et exécute la commande donnée pour chaque ligne, en remplacement de{}
avec chaque entrée de ligne (comme indiqué par-I{}
).tr
est utilisé depuisxargs
dans macOS ne supporte pas-d
pour un délimiteur personnalisé.Cependant, je remarque que votre liste n'inclut pas les extensions de fichier. Vous pouvez plutôt ajouter l'extension à la fin de la commande.
la source