llgd.net
当前位置:首页 >> shEll sED 匹配 >>

shEll sED 匹配

抛砖引玉 预览: sed -n -e '/aaa/{n;n;n;s|$|\n新添加的行|p}' 3hang_addline.txt 应用: sed -i -e '/aaa/{n;n;n;s|$|...

改为双引号阿 sed "s/10N/{$i}/g"

改成这样就可以了: A="\/usr\/sbin\/control.sh --start" sed -i "/$A/d" cmd.cfg

a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\{8\}\).*' ) echo $a linux shell 中可以将命令的结果赋值给变量,$(命令)这种格式将返回命令执行后的结果字符串 上面命令执行后,变量a的值是20140501 a=`echo 'helloworld20140501.txt'|sed ...

sed替换命令的结构为: s/A/B/ 你在最后少了个斜杠/,结构不完整,会报错。 修改为: A=helloar=$(date "+%Y%m%d")echo A | sed "s/he/$Var/"

sed -n '/pattern/p' file_name |sed -n 7,12p#pattern是你要查的内容#file_name是你要查的文件以上实现:打印出匹配结果中的7-12行sed -n '/pattern/{7,12p}' file_name以上实现将文件中7到12行中匹配的数据显示出来

正则匹配中,点号.表示任意一个字符,*表示重复前面一个字符(这里就是点号.)0次或多次。 \(.*\)a表示要以一个a字符结尾,而默认情况下*具有贪婪特性,会匹配符合要求的最大数目的字符。 因此 .* 就匹配到了最后一个a前面的所有字符。 \( \) 这...

你的代码应该copy上来 可以用grep命令,把包含sed的 while 循环删除换成: grep -v "$no" stu.txt 就可以了。 -v 表示显示不匹配的行

“修改语法,用#代替”,这个只能用在sed的s替换命令中,如:s/A/B/可以写为s#A#B# 但直接正则匹配 /正则/ 是不可以这样用#替代的。 这里提供两个方法供参考: 1)先用s命令将此要删除的路径替换为一个文件中不可能出现的唯一字符串,然后再通过正...

不需要转义,可以更改定界符。 例如: A=“2013/06/09“sed “s#hello#$A#" 将定界符改为#就可以了。 望采纳,谢谢支持!

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