awk處理兩則

2021-05-24 01:45:05 字數 1131 閱讀 7955

發覺很多時候在論壇上碰到下述兩種問題。現在歸類以下:

1.在乙個檔案當中以一定的規則刪除重複的記錄

有如下銀行帳單部分文字,

200000000000007|shi yan city qi pei bu

202111320000018|hospital

200000000000007|shiyan city renmen road qi bei bu

201602520002941|middle school

200000000000007|mingfeng road qi pei

201602120000113|zhuanghuang factory

201602320000115|liangyou factory

要求:將第一列中重複的合併為一行,其第二列填入最長位址的那列

得到的結果應為:

200000000000007|shiyan city renmen road qi bei bu

202111320000018|hospital

201602520002941|middle school

201602120000113|zhuanghuang factory

201602320000115|liangyou factory

處理方法是:

$ awk -f'|' 'end' file

關鍵點在這裡的靈活運用,length($2)>length(a[$1])

通過a[$1]記錄index相同的前乙個記錄的第二域。

2.刪除滿足一定規則的列

比如有以下記錄檔案:

1 2 3 5 1

2 a 3 4 5

1 a 3 a 4

1 2 4 5 4

1 3 2 a 4

刪除含有a的列,結果只是顯示

1 3 1

2 3 5

1 3 4

1 4 4

1 2 4

這裡通過標記的方式進行處理。含有a的列,就用乙個flag標記一下,在列印的時候就跳過有標記的。同時使用二位陣列,nr作為index,會更加方便地處理,指令碼如下(這樣子看起來比較有邏輯,全都寫在命令行當中的話,容易錯誤):

}end

printf("/n")}}

awk等命令處理文字日誌 資料 工作記錄兩則

剛才為了選全站分類,尋找了小分鐘。想來靜心寫寫工作筆記,發篇blog還是挺麻煩,尤其對我這個懶人。為了子文為了堅持,忍耐下吧。下面的文字,是小申工作的筆記。處理文字log的兩次記錄,備忘以後方便查詢。這塊我是剛入門的同學,應用也比較簡單,高手看到之後,多多指教。1 處理一 quote 資料檔案一 l...

PL SQL經驗兩則

兩則pl sql程式設計的小經驗,隨手記下。一 對游標引數使用like查詢 定義乙個游標 cursor cemploye cpname varchar2 is select emp no from employe where name cpname 如果要使用like查詢怎麼辦?簡單 cursor ...

DirectFB兩則技巧

directfb 兩則技巧 directfb 的執行行為可以通過配置檔案進行控制,可以從多個配置檔案中讀出配置資訊,然後合併到一起,甚至可以對不同名稱的應用程式指定不同的配置檔案。其主配置檔案為 etc direcfbrc 它的內容影響所有使用者的應用程式。建立 pc模擬環境。directfb 和x...