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

时间: 2024-10-29 19:12:03

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

删除字符串中指定位置的字符

/********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:DelPosChar.c * 文件标识:无 * 内容摘要:删除字符串中指定位置的字符 * 其它说明:无 * 当前版本: V1.0 * 作 者: Wu Yingqiang * 完成日期: 20150115 * ***********************************

获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数

#region 函数:GetSubString() 作用:获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数 /// <summary> /// 获取字符串中指定位置开始的指定长度的字符串,支持汉字英文混合 汉字为2字节计数 /// </summary> /// <param name="strSub">输入中英混合字符串</param> /// <param name="start"

通过一个map替换字符串中指定的字符变量

项目中需要生成一个合约,存放在mysql对应的text类型的属性里, 合约的内容对于每个用户来说大致都一样,但有几个地方需要替换成对应的信息, 比如,甲方,乙方的名字,合约的日期,合约的金额. 本来想找个第三方的jar包来实现这个功能,但找了很久都没有合适的,于是自己写了个简单的方法.

js获取一个字符串中指定字符串第n次出现的位置

1.JS获取一个字符串中指定字符串第n次出现的位置 了解类似的获取字符位置的方法: 1.1 charAt() 获取字符串指定位置的字符 用法:strObj是字符串对象,index是指定的位置,(位置从0开始数) strObj.charAt(index) 1.2 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置 用法:stringObject是字符串对象,searchvalue是指定的字符串值,fromindex(可有可无)指定开始匹配字符串值的位置,若无,表示从0位置开始

js替换字符串中所有指定的字符

第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志). replace() The replace() method returns the string that results when you replace text matching its first argumen

替换字符串中的空格

题目描述: 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 输入: 每个输入文件仅包含一组测试样例. 对于每组测试案例,输入一行代表要处理的字符串. 输出: 对应每个测试案例,出经过处理后的字符串. 样例输入: We Are Happy 样例输出: We%20Are%20Happy -------------------------------------------------

[两个指针]删除字符串中指定的字符

删除字符串中指定的字符 输入 char *a = "abc123"; char *del = "a13"; 利用两个字符指针的方式,pslow,pfast; char *pslow,*pfast; 两个指针一开始都指向字符串的开始位置; pfast开始遍历字符串, if(*pfast==指定字符){////这里疑惑的地方就是,pslow什么时候向前滑行 将pfast所指字符,移到pslow的位置(就是赋值操作,*pslow = *fast) pslow++; pfa

删除string类型字符串中指定字符串段

1.实现背景 在插入list行时用邮件的MessageID给对应行命名. 在回复全部邮件时,收件人变为之前收件人中出去“自己”同时加入之前发件人,抄送人还是之前的抄送人,密送人不用管,直接不用带. 在“回复全部”按钮响应函数里面 CListUI* pList = static_cast<CListUI*>(m_PaintManager.FindControl(_T("middle_comlumn_header1")));//拿到list控件指针            int

Java如何计数替换字符串中第一次出现的子字符串?

在Java编程中,如何拆分正则表达式和字符串? 以下示例演示如何使用Matcher类的replaceFirst()方法替换字符中指定的子字符串的首次出现. package com.yiibai; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ReplaceFirstOccurrence { public static void main(String args[]) { Pattern p