시뮬레이션/vi 명령어

vi 명령어) Linux 에서 여러 파일 내 텍스트를 일괄적으로 바꾸는 법

코라자비 2024. 9. 11. 18:22

 

Linux 환경에서 여러 simulation 파일을 만들고 돌리다 보면 여러개의 파일에서 텍스트를 변경해야할 때가 있습니다. 똑같은 인풋 환경과 시뮬레이션 환경에서 특정 회로만 바꾸려고 할 수도 있고, 혹은 여러 개의 시뮬레이션 파일에서 vdd, temperature 등 특정 환경만 바꾸려고 할때죠. 이 때 여러개의 파일을 하나씩 열어서 바꾸다 보면 시간이 많이 소요될 뿐만 아니라, 빼먹게 되는 human error 가 발생할 수도 있죠. 

 

 

sed -i 's/(바꾸고 싶은 단어)/(바꾸려는 단어)/g' (파일이름)

 

여러 개의 파일 내에서 텍스트를 바꾸기 위해 사용하는 명령어로는 sed 구문이 있습니다. 바로 위와 같은 구문을 사용하면 되죠. 아래에서 예를 들어보겠습니다.

 

**a.sp

.param vdd=1.2
.inc "./input_file"
.temp 25
-------------------------------------------------------------------
**b.sp

.param vdd=1.2
.inc "./input_file"
.temp -40
-------------------------------------------------------------------
**c.sp

.param vdd=1.2
.inc "./input_file"
.temp 100

 

위와 같이 특정 경로에 a.sp , b.sp , c.sp 3개의 파일이 있다고 합시다. 위 3개의 파일에서 vdd 만 전부 바꿔봅시다. Linux 에서는 아래와 같이 명령어를 치면 돼죠.

 

sed -i 's/vdd=1.2/vdd=0.9/g' *.sp

 

위와 같이 sed 구문을 사용하면 됩니다. 맨 끝에 *.sp 을 선언하면 됩니다. 이렇게 선언하면 .sp 로 끝나는 모든 파일에 위 바뀌는 구문이 적용되죠.

 

**a.sp

.param vdd=0.9
.inc "./input_file"
.temp 25
-------------------------------------------------------------------
**b.sp

.param vdd=0.9
.inc "./input_file"
.temp -40
-------------------------------------------------------------------
**c.sp

.param vdd=0.9
.inc "./input_file"
.temp 100

 

sed 구문을 먹이고 나면 위와 같이 sp 파일이 바뀌어있는걸 확인할 수 있습니다. 이상입니다.

반응형