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?

 채택된 답변

Jonathon Gibson
Jonathon Gibson 2018년 6월 28일
편집: Jonathon Gibson 2018년 6월 28일

1 개 추천

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

Namira
Namira 2018년 6월 28일
Thanks. I am using Linux. It does not work in Linux system.
!sed -i 's/Amplitude = 100;/Amplitude = 200;/g' ./*
Namira
Namira 2018년 6월 28일
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 2018년 6월 28일
Thank you so much. It's working now.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Environment and Settings에 대해 자세히 알아보기

질문:

2018년 6월 28일

편집:

2018년 6월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by