如何在Tcl中使用sed搜索带花括号的模式

时间:2018-02-21 05:30:08

标签: linux sed tcl

示例:输入文件如下所示

 signal {   
    XX, yy,
    Zz 
    XX ck" {
        P { 10ps
            25ps
            100ps }
    }
    yy ck" {
        P { 10ps
            25ps
            100ps }
        }
    Zz ck" {
        P { 10ps
            25ps
            100ps }
        }
    "XX"+, "yy"+, "zz"
}

我需要的输出是,

   signal {    
        XX, yy,
        Zz 
        "XX"+, "yy"+, "zz"
    }

上面的例子是文件中行的一部分,我应该使用sed命令删除大括号中直到6行的模式。

在命令下面使用,

exec / bin / sed -e {xx ck“{/,+ 6d} -i file

它不起作用,它也删除了其他行  应删除以下内容,

       Zz ck" {
            P { 10ps
                25ps
                100ps }
            }
       XX ck" {
            P { 10ps
                25ps
                100ps }
          }
       yy ck" {
            P { 10ps
                25ps
                100ps}
            }

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

使用双引号("...")转义sed表达式而不是使用大括号({...})时,我得到了所需的结果:

exec /bin/sed -e "/.. ck\" \{/,+4d" -i file

请注意,我还将表达式更改为仅删除4行。