Rename multiple files by substituting specific characters

2 views (last 30 days)
Hi all,
i have multiple .csv files, ordered and named following this scheme:
file.0.csv, file.1.csv, file.2.csv, etc.
i do have a problem while using:
files = dir('*.csv');
if I give the command:
files.name
I get this wrong order:
file.0.csv, file.1.csv, file.10.csv, file.100.csv, file.101.csv, etc.
I suppose the problem is the dot after "file", so I'd like to rename all files by substituting the dots with something else (underscore for example) to fix the issue.
Anyone can help me?
Thanks in advance

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 6 Dec 2013
files = dir('*.csv');
[~,ii] = sort(cellfun(@(x)sscanf(x,'file.%d.csv'),{files.name}));
file_sorted = files(ii);

More Answers (0)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!