
求教关于sed的多行替换
有个文件PlainTextcode?123456789<aa>0.01</aa><aa>0.010.010.010.01</aa>现在想用sed,或其他,linux命令,...
有个文件
Plain Text code?
1
2
3
4
5
6
7
8
9
<aa>
0.01
</aa>
<aa>
0.01
0.01
0.01
0.01
</aa>
现在想用sed,或其他,linux命令,将
Plain Text code?
1
2
3
<aa>
0.01
</aa>
中的0.01替换为0.0001,而保持
Plain Text code?
1
2
3
4
5
6
<aa>
0.01
0.01
0.01
0.01
</aa>
不变。
求教高手命令应该如何写?
谢谢! 展开
Plain Text code?
1
2
3
4
5
6
7
8
9
<aa>
0.01
</aa>
<aa>
0.01
0.01
0.01
0.01
</aa>
现在想用sed,或其他,linux命令,将
Plain Text code?
1
2
3
<aa>
0.01
</aa>
中的0.01替换为0.0001,而保持
Plain Text code?
1
2
3
4
5
6
<aa>
0.01
0.01
0.01
0.01
</aa>
不变。
求教高手命令应该如何写?
谢谢! 展开
展开全部
sed ':a;N;$!ba;s/0.01/0.0001/g' file
:a 创建一个labela
N 将下一行读入到模式空间
$! 如果不是最后一行,ba跳转到label a处
s/0.01/0.0001/ 替换0.01为0.0001,只替换一次
步骤1-3(即:a;N;$!ba;)就是为了将file全部内容读到模式空间中,然后再进行替换,这样替换就只会做一次。
:a 创建一个labela
N 将下一行读入到模式空间
$! 如果不是最后一行,ba跳转到label a处
s/0.01/0.0001/ 替换0.01为0.0001,只替换一次
步骤1-3(即:a;N;$!ba;)就是为了将file全部内容读到模式空间中,然后再进行替换,这样替换就只会做一次。
追问
这个经测试达不到要求啊,所有的0.01都会被替换
[root@li1182-134 ~]# cat 1.txt
0.01
0.01
0.01
0.01
0.01
[root@li1182-134 ~]# sed ':a;N;$!ba;s/0.01/0.0001/g' 1.txt
0.0001
0.0001
0.0001
0.0001
0.0001
追答
sh-3.2# cat 1|sed '1,/0.01/s/0.01/0.0001/'
0.0001
0.01
0.01
0.01
0.01
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询