MATLAB Answers

Robert
0

Find specific files based on sections of file name

Asked by Robert
on 12 Jan 2018
Latest activity Commented on by Walter Roberson
on 19 Jul 2019 at 22:08
Hello,
I want to generate an analysis using .csv files. How could I make a search to load only files that have specifics sections in the file name? Like this example, assuming folder AA has files:
Lab_001_CAN_033.csv
Lab_011_USA_031.csv
Lab_021_CAN_031.csv
Lab_091_CAN_032.csv
Lab_001_CAN_003.csv
Lab_011_USA_011.csv
Lab_021_CAN_001.csv
Lab_091_CAN_002.csv
But just read files with the section 'CAN' and the condition that the last 3 numbers on file name (sample number) have to be between 0 and 10 (or 000 and 010), so I can only download the files:
Lab_001_CAN_003.csv
Lab_021_CAN_001.csv
Lab_091_CAN_002.csv
For a few files this is not a problem, but for thousands of files (as I have) it gets complicated.
Thanks!

  1 Comment

Sorry, I forgot to add that I also would like to make copies of those files and save them to a folder named BB.

Sign in to comment.

1 Answer

Answer by Kris Fedorenko on 12 Jan 2018
 Accepted Answer

Function dir with a wildcard (*) might be somewhat helpful. For example
fstruct = dir('*_CAN_*.csv')
would return a structure of all files with a .CSV extension containing "_CAN_" as part of their names.
For only getting the numbers between 001 and 010 you would need to do something more involved. You might consider an if-statement to filter the results of the "dir" command while looping over them. Or maybe you can take a look at Regular Expressions.
Note that
fstruct = dir('*_CAN_00*.csv')
would already return all files containing "_CAN_00" in their name, so one possible ad-hoc workaround would be to do that to get files with _CAN_001, _CAN_002, ..., _CAN_009, and run a separate query for _CAN_010 file

  3 Comments

Hi Kris,
I have the save question. After i get the struct which have all files, whats the code of next step if i want to save those files into a new folder? I am a nebby of Matlab. Thank you.

Sign in to comment.