일부 텍스트를 sed로 교체

일부 텍스트를 sed로 교체

키워드 LAYOUT_PRIMARY를 검색하여 resis_test를 m.gds로 바꾸려고 했습니다.

sed -e 's/\(LAYOUT PRIMARY\).*\1 /m.gds/' < FILE.ex > b

파일.ex

LAYOUT PRIMARY "resis_test"
LAYOUT SYSTEM GDSII

DRC RESULTS DATABASE "resis_test.drc.results" ASCII 
DRC MAXIMUM RESULTS 1000
DRC MAXIMUM VERTEX 199

답변1

더 안전한

sed -e '/LAYOUT PRIMARY/s/resis_test/m.gds/' < FILE.ex > b

답변2

이 시도:

 sed -e 's/\(LAYOUT PRIMARY\).*/\1 m.gds/'
                               ^^^

소스 섹션이 아닌 교체 섹션에서 캡처링 그룹에 대한 호출을 확인하세요.

답변3

다음 명령을 사용하여 테스트하면 훌륭하게 작동합니다.

명령 1:

awk '/LAYOUT PRIMARY/{print gsub("resis_test","m.gds",$0)}1' filename

명령 2:

sed '/LAYOUT PRIMARY/s/resis_test/m\.gds/g' filename

산출

LAYOUT PRIMARY "m.gds"
LAYOUT SYSTEM GDSII

DRC RESULTS DATABASE "resis_test.drc.results" ASCII 
DRC MAXIMUM RESULTS 1000
DRC MAXIMUM VERTEX 199

관련 정보