I have some 50+ conf files that I am working. I need to find and replace various variable for all these files. For example, I'd like to find the line
Amplitude = 100; and replace it to: Amplitude = 200; for all files.
I've searched in online and found the solution only for one file. I'm looking for a way to do that in matlab. Any ideas?

 Risposta accettata

Jonathon Gibson
Jonathon Gibson il 28 Giu 2018
Modificato: Jonathon Gibson il 28 Giu 2018
If you're on a Unix system, and currently in the directory with the conf files, you can run from MATLAB:
!sed -i 's/Amplitude = 100;/Amplitude = 200;/g' ./*
Which will check every file in the current directory (./*) for the first regular expression (Amplitude = 100;) and replace it with the second regular expression (Amplitude = 200;). The ! just makes it the same as entering the command directly into the system's terminal.

5 Commenti

Namira
Namira il 28 Giu 2018
Thanks. I am using Linux. It does not work in Linux system.
!sed -i 's/Amplitude = 100;/Amplitude = 200;/g' ./*
Namira
Namira il 28 Giu 2018
Thanks. I run the command in the command window in Matlab. It does not change the text. Did I do anything wrong?
sed is sensitive to spacing and upper/lower case. For example if there were two spaces between the = and the 100, then the above command would not match. The version that is not sensitive to spacing is
!sed -i 's/Amplitude\s*=\s*100;/Amplitude = 200;/g' ./*
Namira
Namira il 28 Giu 2018
Thank you so much. It's working now.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Get Started with MATLAB in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by