lzth.net
当前位置:首页 >> 怎么使用shEll脚本将,每行前两个字符串去替换这一... >>

怎么使用shEll脚本将,每行前两个字符串去替换这一...

你的例如没把我整明白,再加一个预期结果吧 基于你的例如,我理解是:用A和逗号(前两个字符)去替换第一行中的所有分号.用E和逗号(前两个字符)去替换第二行中的所有分号.不知道对不?

$ cat a.txtasd5678xyz9090qwert890$ cat a.txt | sed -r 's/().*/\1/g'asdxyzqwe

sed -i '/aaa/{:a;n;s/123/xyz/g;/eee/!ba}' yourfile先匹配aaa,匹配到后执行大括号里的语句.n 读取下一行s/123/xyz/g 将123替换为xyz,全局替换,同一行中出现几次替换几次:a 设定跳转标签a/eee/!ba 若当前行匹配不上eee,则跳转到标签a处继续执行,构成一个循环.若匹配到eee,则退出循环,sed重新对读入的每行匹配aaa.由于sed没有加-n静默选项,所以默认对每行数据处理后都打印.

我是来看评论的

命令: sed -n 's/^\(.\).\{5\}/\1【要替换成哪些字符】/gp' 【文件】上面例子里将某个文件每一行第二到第6个字符替换成了abcd

str=123456abcfinal=`echo ${str: -1}`或者final=${str: -1}都可以让final获得c这个最后一个字符linux 的字符串截取很有用.有八种方法.假设有变量 var=http://www.aaa.com/123.htm.1. # 号截取,删除左边字符,保留右边字符.代码如下:echo ${var

根据位置替换即可:read ip sed -ri "/subnet/s/(subnet )[^ ]+( netmask.*)/\1$ip\2/" /mnt/file/subnet/ - 先正则匹配到含有subnet的行,然后替换.替换的时候将不变的部分用小括号括起来,后面依次用\1 , \2 原封不动地引用回来.-r 选项用于支持扩展正则,这样就不需要额外的转义符.[^ ] 表示不为空格的任意一个字符,+ 表示重复该字符至少1次.

[root@localhost ~]# echo $c123456[root@localhost ~]# echo $c|sed 's/./a/' a23456.表示任意字符,替换第一个就不需要加上g

[root@localhost test]# cat c >1 abc 5000 2 ed>f 2000 3 ghi 60>00 3 g>hi 60>00 [root@localhost test]# sed 's/>//g' c 1 abc 5000 2 edf 2000 3 ghi 6000 3 ghi 6000 [root@localhost test]# sed -i 's/>//g' c [root@localhost test]# cat c 1 abc 5000 2 edf 2000 3 ghi 6000 3 ghi 6000

#!/bin/shsrc="hello"des="Hi"sed -i "s/$src/$des/g" *这样会直接修改文件.

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com