本系列文章所提供的算法均在如下环境下编译经过。 java
【脚本编译环境】Federa 8,linux 2.6.35.6-45.fc14.i686
【处理器】 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
【内存】 2025272 kB linux
awk是脚本中出色的文本处理工具。源码好像也是用C语言写的。本系列会针对不一样的案例,用awk来解决咱们所要的问题。 为何会用awk呢?咱们固然可使用C语言或者java语言来对文本 作处理,但每次都要编译会使人发疯的。修改起来也麻烦,正所谓杀鸡焉用牛刀。 而脚本的灵活便捷使得工做变得更加轻松容易。在shell脚本编程中,awk堪称瑞士军刀毫不为过。 算法
本系列文章均系笔者所写,不免有一些错误或者纰漏,若是小伙伴们有好的建议或者更好的算法,请不吝赐教。 shell
如今有一个文本a.txt以下:编程
1 2 333 44 222 44
提取完以后,c.txt文本内容以下: 数组
1 555 2 333 555 44 222 44
BEGIN { FS="[ ]+" } { a[NR]=$0 } /44/{ a[NR-2] = "555\n"a[NR-2] } END { for(i=1; i<=NR;i++) { print a[i] } }
在awk中,pattern要和 {在同一行。就像BEGIN和END在同一行。 工具
awk中遍历行的时候,是不能修改文本,因此要把文本保存在数组当中 spa
出处:http://www.cnblogs.com/gina code
本文版权归做者全部,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。 blog