2016-11-18 11 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」を編集してから、それを変更するに興味を持っています「SYMMETRY Y;」 "SYMMETRY X Y;"にしてください。 (G)awkまたはsedは正常に動作します。私は、次のことを試してみましたが、それは空虚を返しました:

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

ありがとうございました! GNUで

答えて

0

はsedを:

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 ; 
関連する問題