How to delete files ending with odd number?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Morgane Flament
am 13 Aug. 2018
Kommentiert: Morgane Flament
am 13 Aug. 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 Kommentare
Akzeptierte Antwort
Simon Henin
am 13 Aug. 2018
Bearbeitet: Simon Henin
am 13 Aug. 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 Kommentare
Simon Henin
am 13 Aug. 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.
Weitere Antworten (1)
Morgane Flament
am 13 Aug. 2018
4 Kommentare
Paolo
am 13 Aug. 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')
Siehe auch
Kategorien
Mehr zu File Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!