awk應用 資訊的檢索

2022-04-05 08:32:28 字數 1092 閱讀 3002

awk程式可以用於檢索資料庫中的資訊,資料庫實際上是各種型別的文字檔案。文字檔案的結構化越好,對其處理就越容易工作,儘管這個結果不過是由獨立的單詞組成的行。

下面這個首字母縮寫詞列表是乙個簡單的資料庫。

$ cat acronyms

basic beginner' s ai i-purpose symbol ic instruction code

cics customer information control system

cobol common business oriented language

dbms data base management system

gigo garbage in, garbage out

girl generalized information retrieval language

製表符被作為字段分隔符。我們將看到乙個程式,它將首字母縮寫詞作為輸入並選擇資料庫中對應的行作為輸出。(在下一幸中,我們將看到另外兩個使用首字母縮寫詞資料庫的程式。乙個程式是讀取首字母縮寫詞列表並在另乙個檔案中找到這些首字母縮寫詞出現的位置。另乙個程式是定住這些首字母縮寫詞在文字檔案中的第一次出現的位置並插入相應的首字母縮寫詞的描述。)我們編寫的shell指令碼命名為acro。它從命令列中獲取第乙個引數(首字母縮寫詞的名字)並將它傳遞給awk指令碼,acro指令碼如下:

$ cat acro

#!/bin/sh

#將shell的$1賦給awk的search變數

awk '$1 == search' search=$1 acronyms

在shell命令列中的第乙個引數($1)被賦給變數search,這個變數作為引數傳遞給awk程式。傳遞給awk程式的引數在指令碼之後說明。(這閒的有些混亂,因為在awk程式中$1代表每個輸入行的第乙個字段,而在shell指令碼中$1代表命令列提供的第乙個引數。)

下面的例子演示了如何用這個程式在列表中找到特殊的首字母縮寫詞。

$ acro cics

cics customer information control system

注意,我們將引數作為字串來檢測($1==search) 。我們也可以將其寫成乙個正規表示式匹配($1~search)。

awk應用 獲取檔案的資訊(一)

現在我們來學習unix命令ls的幾個指令碼。下面的執行命令ls l得到的乙個長列表樣本 ls l rw rw rw 1 dale project 6041 jan 112 31 com.tmp rwxrwxrwx 1 dale project 1778 jan 111 55 combine.idx ...

awk應用 獲取檔案的資訊(二)

我們所編寫的操作將應用於所有的輸入行。當awk讀入所有的輸入行後,所產生的總數必須列印出來,因此,我們編寫了乙個由end規則控制的操作 end 我們還可以使用begin 規則給報告增加列標題。begin 現在,我們將這些程式 放在檔案filesum中並作為乙個命令執行。filesum c bytes...

資訊檢索之布林檢索

1 倒排索引的兩部分 圖 1 3 2 構建倒排索引的過程 收集需要建立索引的文件 將每篇文件轉換成乙個個詞條的列表,這個過程成為詞條化 第二章 進行語言學處理,產生歸一化的詞條來作為詞項 第三章 對所有文件按照其中出現的詞項來建立倒排索引,索引中包括一部詞典 存於記憶體 和乙個全體倒排索引表 存於磁...