免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: cerius2
打印 上一主题 下一主题

awk如何将带标题的表格数据格式化输出? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-11-03 01:08 |只看该作者
回复  cerius2
yinyuemi 发表于 2011-11-02 23:50



    awk '/Fractional coordinates of asymmetric unit :/{p=1}/------/{p++}p==3{gsub("*","");print OFS,$4,OFS,$5,OFS,$6}' file
        
  0.913868   0.945745   0.500000
  0.954887   0.158829   0.500000
  0.955613   0.424480   0.500000
  0.956641   0.689914   0.500000
  0.999030   0.902254   0.500000


$ awk '/Fractional coordinates of asymmetric unit :/{p=1}/------/{p++}p==3{print}' file
--------------------------------------------------------------------------------
      1 C     c    0.913868    0.945745    0.500000      0.0000    1.000000   
      2 C     c    0.954887 *  0.158829 *  0.500000      0.0000    1.000000   
      3 C     c    0.955613 *  0.424480 *  0.500000      0.0000    1.000000   
      4 C     c    0.956641 *  0.689914 *  0.500000      0.0000    1.000000   

谢谢,基本实现目的了,不过第一行仍然是输出了一行空格,能否去掉啊?


      5 C     c    0.999030 *  0.902254 *  0.500000      0.0000    1.000000

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
12 [报告]
发表于 2011-11-03 01:46 |只看该作者
回复 11# cerius2


    加个判读: !/------/

论坛徽章:
0
13 [报告]
发表于 2011-11-03 22:21 |只看该作者
继续求助啊

:/{p=1}/------/{p++}p==3 这种操作方法对于 ---位于文档最顶部适用。

但是更通用来说,可能要提取的数据处于动态的位置,这样这个代码就不能用了


示例的file:
============================================

  Fractional coordinates of asymmetric unit :

--------------------------------------------------------------------------------
   No.  Atomic       x           y          z         Charge      Occupancy
        Label      (Frac)      (Frac)     (Frac)        (e)         (Frac)  
--------------------------------------------------------------------------------
      1 C     c    0.913868    0.945745    0.500000      0.0000    1.000000   
      2 C     c    0.954887 *  0.158829 *  0.500000      0.0000    1.000000   
      3 C     c    0.955613 *  0.424480 *  0.500000      0.0000    1.000000   
      4 C     c    0.956641 *  0.689914 *  0.500000      0.0000    1.000000   
      5 C     c    0.999030 *  0.902254 *  0.500000      0.0000    1.000000   
--------------------------------------------------------------------------------
中间有n个
--------------------------------------------------------------------------------

  Final fractional coordinates of atoms :

--------------------------------------------------------------------------------
   No.  Atomic        x           y          z          Radius
        Label       (Frac)      (Frac)     (Frac)       (Angs)
--------------------------------------------------------------------------------
     1  C     c     0.913868    0.945745    0.500000    0.000000
     2  C     c     0.954931    0.159261    0.500000    0.000000
     3  C     c     0.955832    0.424808    0.500000    0.000000
     4  C     c     0.957040    0.690123    0.500000    0.000000
     5  C     c     0.999481    0.902896    0.500000    0.000000
--------------------------------------------------------------------------------
尾部还有n个
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP