How to list files with multiple extensions?
Ältere Kommentare anzeigen
Suppose I want mp3 or avi files from a folder, on Unix I could do
ls *.{mp3|avi}
Is there a clean one-liner way to do this in matlab? Presently, I can do it in two lines by doing the following:
f = dir(folder)
f(~cellfun(@isempty,regexpi({f.name},'.*(mp3|avi)'))).name
However, I find this rather ugly compared to the simplicity of the first expression.
Thanks, Kevin
1 Kommentar
Antworten (3)
Doug Hull
am 24 Okt. 2012
2 Stimmen
Can you run the command twice with two filters? The results would be two structures of the same format that could then be appended together.
2 Kommentare
Kevin
am 24 Okt. 2012
Sean de Wolski
am 24 Okt. 2012
@Kevin, a for-loop over a cell array containing the extentions would allow it to scale, though concatenating structures is ugly.
Sean de Wolski
am 24 Okt. 2012
1 Stimme
You could just farm that command out to Unix if you are on a unix system...
ANKUR WADHWA
am 6 Nov. 2019
Bearbeitet: Cris LaPierre
am 9 Jan. 2024
1 Stimme
Though the thread is very old still for users who are looking for an easy way a very simple existing solution on Matlbcentral
Kategorien
Mehr zu File Operations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!