我有一个包含多个宏及其相应详细信息的文件。感兴趣的代码在这里:
MACRO QWERTY
CLASS FOO ;
ORIGIN 0.0 0.0 ;
FOREIGN QWERTY 0.0 0.0 ;
SIZE 2.123 BY 0.369 ;
SYMMETRY Y ;
我感兴趣的是编辑的SYMMETRY只是宏" QWERTY"并从#34; SYMMETRY Y;" to" SYMMETRY X Y;"。 (G)awk或sed工作得很好。我尝试了以下方法,但它又恢复了空虚:
gawk '1;/MACRO QWERTY/{c=5}c&&!--c{gsub(/Y/,"X Y")}'
谢谢!
答案 0 :(得分:0)
使用GNU 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 ;