J'ai un fichier texte qui a une liste de chemins d'accès à divers fichiers. Existe-t-il une commande que je peux utiliser pour parcourir chaque ligne et supprimer le fichier au chemin indiqué?
command-line
files
daka
la source
la source
cat
pas obligatoire, vous pouvez utiliser lastdin
redirection:< file xargs rm
cat file
" dans (ba) sh ou csh.cat
est inutile, comme je viens de le dire, profitez-enstdin
! Regardez sa réponse mise à jourVoici une façon de gérer les noms de fichiers avec des espaces, des barres obliques inverses et d'autres caractères étranges:
Cela va lire chaque ligne de
list.txt
, l'enregistrer sous$file
et l'exécuterrm
. Le-r
garantit que les barres obliques inverses sont lues littéralement (de façon à ce qu'elles\t
correspondent à a\
et àt
et non à une tabulation). Le--
garantit qu'il traite également les noms de fichiers commençant par-
.Vous pouvez également le faire en Perl:
Celui-ci lira chaque nom de fichier dans le
%k
hachage puis utiliseraunlink
pour supprimer chacun d'eux.la source
Par python.
Enregistrez le script ci-dessus dans un fichier nommé like
script.py
, puis exécutez le script en exécutant la commande ci-dessous sur le terminal.file
est un fichier d'entrée dans lequel le chemin des fichiers que vous souhaitez réellement supprimer est stocké.la source
Idiot, mais en voici un:
la source
Une autre façon de procéder:
Vous pouvez «préparer» le fichier en en faisant un script shell:
Si vos noms de fichiers peuvent avoir un guillemet simple (
'
), vous pouvez utiliser cette version légèrement développée pour les échapper en premier:Et vous pouvez l'exécuter en le redirigeant vers
sh
:la source
Si je comprends bien, vous avez un fichier texte avec les fichiers avec les chemins d'accès complets. Il y a deux possibilités:
Votre liste contient les noms de fichiers séparés par des sauts de ligne, c'est-à-dire que chaque ligne a le chemin complet vers un fichier. dans ce cas: voici une solution simple:
Si votre liste contient une ou plusieurs lignes de noms de fichiers séparés par des espaces ou des tabulations, voici l'exploration:
cela convertira tous les espaces blancs en nouvelles lignes
Oui, il existe de nombreuses façons de le faire, mais c'est une approche très simple.
la source