zoukankan      html  css  js  c++  java
  • awk实现替换字符串中指定位置之间的内容

    # 显示第xx行的第yy列的一个字符
    sed -n 'xx,xxp' file | awk '{print substr($0,yy,1);}'

    # 修改第xx行的第yy列的一个字符Chr,并保存为新文件
    awk -F "" 'BEGIN { OFS="" }{if(NR == xx) for(i=yy;i<=yy;i++) {$i="Chr";} print }' file > newfile

     

    file内容:
    123abc456aababc789abcqweabcrtyabc

    替换第9个字符到第19个字符之间的abc为xyz:

    awk -F "" 'BEGIN { OFS="" } {for(i=9;i<=19;i++) if($i=="a" && $(i+1)=="b" && $(i+2)=="c"){$i="x";$(i+1)="y";$(i+2)="z"}print }' file

    首先通过设定FS,将每个字符看成一个域然后通过for循环进行遍历,经过判断找出abc这样连续的三个字符后进行重新赋值,最后输出,记住,如果用sub、gsub替换,请分析好替换的内容.

    REF:

    http://blog.chinaunix.net/uid-25696473-id-3246669.html

  • 相关阅读:
    20200304(10)
    20200303Tuesday(9)
    词根词缀explicit(8)
    词根词缀(7)
    20200303(6)
    什么是ring0-ring3
    20200301a
    mark字体大全
    评估评价 提高专项(5)
    图的广度优先遍历算法
  • 原文地址:https://www.cnblogs.com/emanlee/p/4321857.html
Copyright © 2011-2022 走看看