《Linux命令行与shell脚本编程大全》 第二十章 学习笔记
label可以定义在b的前面
现在这个例子就很容易理解了,找到逗号,然后删除,打印,然后跳转到脚本开头重复执行。
当所有逗号都删除了之后,循环依然没有停止,所以需要想办法让它在执行完任务就停止查找。
在重复之前,我们查找逗号,如果有,那么就重复执行。
现在就不会进入死循环了。
但是现在还有一个问题,就是我们只想要最终的结果怎么办?
也就是说,我们不能每次循环的时候都打印,只有在执行完任务的时候才需要打印。
测试
类似跳转命令,测试命令(t)会基于替换命令的输出跳转到一个标签,而不是基于地址跳转到一个标签。
在没有指定标签的情况下,如果测试成功,sed会跳转到脚本的结尾。
模式替代
and符号
and符号(&)和正则里面的反向引用很相似。&用来代表替换命令中的匹配模式中匹配到的文本。
代码看上去挺吓人的,这里圆括号和花括号都需要转义,转义之后的圆括号相当于分组,但是用反斜线+数字来引用,花括号转义之后相当于量词
这段代码的意思是:从开头查找连续的数字,前面的一组,后三个一组,然后在两组之间添加逗号
然后再次循环这段逻辑,由于之前在最后三个数字前面添加了括号,所以这次查找不会找到最后三个数字,这次的两组中的第二组是倒数第4、5、6个数字
我们来看一下java中如何实现这个功能:
$ sed 's/<[^>]*>//g;/^$/d' test.html?
?
?
转贴请保留以下链接
本人blog地址
http://su1216.iteye.com/
http://blog.csdn.net/su1216/
?