新手请教linux sed命令替换的问题
有下面一段字符,要求将obj.value="后面的22:21:23替换成28:31:52(obj.value="后面不一定是22:21:23,就是obj.value="后...
有下面一段字符,要求将 obj.value = " 后面的22:21:23 替换成 28:31:52 (obj.value = " 后面不一定是22:21:23,就是obj.value = " 后面的6位,替换成28:31:52 其他不变)
obj.id = "0x00000013" ; obj.value = "28:31:52:E1:49:C9";
原文
obj.id = "0x00000013" ; obj.value = "22:21:23:E1:49:C9";
要求
obj.id = "0x00000013" ; obj.value = "28:31:52:E1:49:C9"; 展开
obj.id = "0x00000013" ; obj.value = "28:31:52:E1:49:C9";
原文
obj.id = "0x00000013" ; obj.value = "22:21:23:E1:49:C9";
要求
obj.id = "0x00000013" ; obj.value = "28:31:52:E1:49:C9"; 展开
6个回答
展开全部
sed -i 's/(obj.value=")[[:alnum:]]{2}:[[:alnum:]]{2}:[[:alnum:]]"/\128:31:52/g' inputfile
------s----替换参数
------[[:alnum:]]-----正则表示数字与字母
-------\1--------前面匹配项的引用,即(obj,value=")
------/g--------表示替换所以出现的匹配项
------{2}------表示正则两个字符或数字
------i-------表示写入原文件
写正则需要考虑全面,不能只看一个项匹配了,就ok。
------s----替换参数
------[[:alnum:]]-----正则表示数字与字母
-------\1--------前面匹配项的引用,即(obj,value=")
------/g--------表示替换所以出现的匹配项
------{2}------表示正则两个字符或数字
------i-------表示写入原文件
写正则需要考虑全面,不能只看一个项匹配了,就ok。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
echo 'obj.id = "0x00000013" ; obj.value = "22:21:23:E1:49:C9"' |sed -e 's/\(..:\)\{3\}/28:31:52:/'
直接能用的。
直接能用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的方法不好, 删掉了~
xiehuahere的方法更好。
xiehuahere的方法更好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sed 's/\(obj\.value\s=\s\"\).\{8\}/\128:31:52/g'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前两个回答的都是高手
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询