本系列文章所提供的算法均在如下環境下編譯經過。 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