用 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

相关内容