码迷,mamicode.com
首页 > 其他好文 > 详细

awk实现替换字符串中指定位置之间的内容

时间:2015-03-08 17:08:17      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

# 显示第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

 

awk实现替换字符串中指定位置之间的内容

标签:

原文地址:http://www.cnblogs.com/emanlee/p/4321857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!