2016-11-18 1 views
0

У меня есть файл, содержащий несколько макросов и соответствующие им данные. Код интереса здесь:Редактировать строку после соответствия шаблону, но только после сопоставления с образцом

MACRO QWERTY 
    CLASS FOO ; 
    ORIGIN 0.0 0.0 ; 
    FOREIGN QWERTY 0.0 0.0 ; 
    SIZE 2.123 BY 0.369 ; 
    SYMMETRY Y ; 

Я заинтересован в редактировании Симметрия просто макросоци- «QWERTY» и изменить его от «Симметрия Y;» к «SYMMETRY X Y;». (G) awk или sed будут работать нормально. Я попробовал следующее, но оно возвратило пустоту:

gawk '1;/MACRO QWERTY/{c=5}c&&!--c{gsub(/Y/,"X Y")}' 

Спасибо!

ответ

0

С GNU СЭД:

sed '/^MACRO QWERTY$/,/SYMMETRY/s/SYMMETRY Y/SYMMETRY X Y/' file 

Выход:

 
MACRO QWERTY 
    CLASS FOO ; 
    ORIGIN 0.0 0.0 ; 
    FOREIGN QWERTY 0.0 0.0 ; 
    SIZE 2.123 BY 0.369 ; 
    SYMMETRY X Y ; 
Смежные вопросы