How to delete files ending with odd number?
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Morgane Flament
el 13 de Ag. de 2018
Comentada: Morgane Flament
el 13 de Ag. de 2018
Hi,
I would like to delete each files having its filename ending by an odd number. Example: file0 file1 file2 file3 file4 After: file0 file2 file4
Thank you for your help :)
0 comentarios
Respuesta aceptada
Simon Henin
el 13 de Ag. de 2018
Editada: Simon Henin
el 13 de Ag. de 2018
You could looop through all the files and delete ones that have an odd number using regexp, regular expression search
files = dir('*'); % find all files in current directory
for i=1:length(files),
fileno = str2double(cell2mat(regexp(files(i).name, '[0-9]{1,}', 'match')));
if mod(fileno, 2) == 1, % check if fileno modulo 2 == 1
delete(files(i).name);
end
end
7 comentarios
Simon Henin
el 13 de Ag. de 2018
No, it could be done within the same loop (with proper accounting). It is just much easier to use a separate loop to make sure nothing gets overwritten.
Simple example.
Imagine:
files = {'file1', 'file2', 'file22', file24', file3'}; % this will happen because of how the dir command organizes the returned files
counter = 1;
----
Each time you go through the loop:
1) file1 will be deleted
2) file2 -> file1
3) file22 -> file2
4) file24 -> file3 (here's the issue. file3 hasn't gone through the loop yet, and thus, will be overwritten!)
---
Hope this clear it up.
Más respuestas (1)
Morgane Flament
el 13 de Ag. de 2018
4 comentarios
Paolo
el 13 de Ag. de 2018
@Morgane,
If you wish to delete only files ending with 2,3,4 or 5, change the character set in the regex:
regexp(files(i).name, '[2345]$', 'match')
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!