Tengo un archivo de texto que tiene una lista de rutas a varios archivos. ¿Hay algún comando que pueda usar que recorra cada línea y elimine el archivo en la ruta indicada?
command-line
files
daka
fuente
fuente
cat
no es obligatorio, puede usar lastdin
redirección:< file xargs rm
cat file
" en (ba) sh o csh.cat
es útil , como acabo de decir, ¡aprovechastdin
! Mire su respuesta actualizadaAquí hay una forma de tratar los nombres de archivos con espacios en blanco, barras diagonales invertidas y otros caracteres extraños:
Eso leerá cada línea
list.txt
, la guardará como$file
y se ejecutarárm
en ella. Las-r
asegura que las barras invertidas se leen literalmente (de modo que\t
coincide con una\
y unat
y no un TAB). El--
asegura que también trata con nombres de archivos que comienzan con-
.También puedes hacer esto en Perl:
Este leerá cada nombre de archivo en el
%k
hash y luego lo usaráunlink
para eliminar cada uno de ellos.fuente
A través de pitón.
Guarde el script anterior en un archivo llamado like
script.py
y luego ejecute el script disparando el siguiente comando en la terminal.file
es un archivo de entrada donde se almacena la ruta de los archivos que realmente desea eliminar.fuente
Tonto, pero aquí hay uno:
fuente
Otra forma de hacer esto:
Puede 'preparar' el archivo convirtiéndolo en un script de shell:
Si sus nombres de archivo pueden tener una comilla simple (
'
), puede usar esta versión ligeramente expandida para escapar de ellos primero:Y puede ejecutar esto canalizándolo a
sh
:fuente
Según tengo entendido, tiene un archivo de texto con los archivos con las rutas completas. Hay dos posibilidades:
Su lista tiene los nombres de archivo separados por nuevas líneas, es decir, cada línea tiene la ruta completa a un archivo. en este caso: aquí hay una salida simple:
Si su lista tiene una o más líneas de nombres de archivos separados por espacios o pestañas, entonces aquí está el ejercicio:
esto convertirá todos los espacios en blanco en líneas nuevas
Sí, hay muchas formas de hacerlo, pero este es un enfoque muy simple.
fuente