編譯環境
本系列文章所提供的算法均在以下環境下編譯通過。
【腳本編譯環境】Federa 8,linux 2.6.35.6-45.fc14.i686
【處理器】 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
【內存】 2025272 kB
前言
awk是腳本中出色的文本處理工具。源碼好像也是用C語言寫的。本系列會針對不同的案例,用awk來解決我們所要的問題。 為什么會用awk呢?我們當然可以使用C語言或者java語言來對文本 做處理,但每次都要編譯會令人發瘋的。修改起來也麻煩,正所謂殺雞焉用牛刀。 而腳本的靈活便捷使得工作變得更加輕松容易。在shell腳本編程中,awk堪稱瑞士軍刀絕不為過。
本系列文章均系筆者所寫,難免有一些錯誤或者紕漏,如果小伙伴們有好的建議或者更好的算法,請不吝賜教。
正文
【場景】
現在有兩個文本a.txt,里面包含的內容如下所示。
以----為分隔符,如果后面完全含有前面的字符,把這一行提取出來
a.txt文本內容如下:
zhangming----zhangming34
lixiang----lixiang20
weiwei----notfind
zhangwei----azhangwei87
lina----aaalina53
lijun----alibjun
提取完之后,c.txt文本內容如下:
zhangming----zhangming34
lixiang----lixiang20
zhangwei----azhangwei87
lina----aaalina53
【代碼】
{ FS = "-+" if( $2 ~ $1 ) { print } }
【解釋】
FS是輸入分隔符,一定要用雙引號。默認為" "。
$2~$1意思是第二個字段要匹配第一個字段,則輸出。
作者
出處:http://www.cnblogs.com/gina
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。