我的文件格式如下,因为是多次输出的数据放在一个文件里,有相同的注释部分我想把这部分删掉,注释部分稍有不同,但是注释开头和结尾的字符串一样,我想只保留“正式内容”。谢谢各位大神
ITEM: TIMESTEP
........
........
........
ITEM: ATOMS id type vx vy vz正式内容ITEM: TIMESTEP
........
........
........
ITEM: ATOMS id type vx vy vz正式内容ITEM: TIMESTEP
........
........
........
ITEM: ATOMS id type vx vy vz

解决方案 »

  1.   

    [root@localhost ~]# cat a
    ITEM: TIMESTEP
    ........
    ........
    ........
    ITEM: ATOMS id type vx vy vz正式内容ITEM: TIMESTEP
    ........
    ........
    ........
    ITEM: ATOMS id type vx vy vz正式内容ITEM: TIMESTEP
    ........
    ........
    ........
    ITEM: ATOMS id type vx vy vz
    [root@localhost ~]# sed '/TEM: TIMESTEP/,/ITEM: ATOMS id type vx vy vz/d' a正式内容
    正式内容
      

  2.   

    如果想要直接执行的话,用sed -i就行了,会把匹配到的两行之间内容,包括两行全部删掉,其余的不动
      

  3.   

    startlen=`cat /etc/passwd|grep -n 'root:x:'|cut -f1 -d:`
    endlen=`cat /etc/passwd|grep -n 'sshd:x:'|cut -f1 -d:`
    z最后用 sed  删除 start 到 end 之间的就行,  具体命令忘记了, 刚学的