awk 處理機制:awk 會逐行處理文字,支援在處理第一行之前做一些準備工作以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下:
begin 讀入第一行文字之前執行,一般用來初始化操作
逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令
end 處理完最後一行文字之後執行,一般用來輸出處理結果
linux 上面預設使用 gawk
注:不指定分隔符,預設分隔符是空格;不加引號的字元,預設是動作
awk -f : 'begin' passwd ##開始執行前,列印hello
awk -f : 'beginend' passwd ##列印每行的第1列,並且開始執行前列印hello,執行結束列印end
awk -f : '' passwd ##逐行列印檔案名passwd
awk -f : '' passwd ##列印passwd檔案的每一行的行號
awk -f : '' passwd ##列印passwd每一行以:為分隔符的列數
awk -f : '' passwd ##列印passwd每一行以:為分隔符的第1列
awk -f : '/bash$/' passwd ##列印passwd每一行以:為分隔符,以bash結尾的行第一列
awk -f : '/!bash$/' passwd ##列印passwd每一行以:為分隔符,除了以bash結尾的行第一列
awk '/[a-d]/' passwd ##列印包含a-d的每一行
awk '/^[a-d]/' passwd ##列印以a-d開頭的每一行
awk '!/^[a-d]/' passwd
或者 awk '/^[^a-d]/' passwd
awk '/^a|bash$/' passwd ##以a開頭或者以bash結尾的
awk '!/^a|bash$/' passwd
awk '/!^a|bash$/' passwd ##不是以a開頭但是是以bash結尾的
awk -f : '$6~/\bin$/' passwd ##列印以:為分隔符第六列是以bin結尾的
awk -f : '$6!~/\bin$/' passwd ##列印以:為分隔符第六列不是以bin結尾的
awk 'begin' ##做運算,開始n=100,列印後n=100+50
awk 測試
1.顯示可以登入系統的使用者的個數
2.顯示使用者的家目錄不在/home底下,能登入系統的
3.顯示使用者的家目錄不在/home底下,能登入系統的使用者的個數
Linuxshell程式設計之awk與sed使用詳解
linux shell程式設計之awk的用法 1.awk的使用 基本功能 在檔案或字串中基於指定規則瀏覽和抽取資訊。awk抽取資訊後,才能進行其他文字操作。完整的awk指令碼通常用來格式化文字檔案資訊。呼叫方式 1.命令列方式 2.將所有awk命令插入乙個檔案,並使awk程式可執行,然後使awk命令...
awk程式設計
一 awk程式設計模型 awk程式由乙個主輸入迴圈維持,按行輸入,反覆執行,知道終止條件被觸發。awk定義了兩個特殊字段 begin 和 end,begin用於在主輸入迴圈 讀輸入檔案 之前執行,end用於在主輸入之後執行。二 awk幾種簡單的用法 注 input是乙個ascii檔案,其中包含三個空...
awk 程式設計
形式 awk options code filename 比如 awk f a filename 這裡用字元 a作為行分隔符,預設是空格 awk fmyscript awk filename in 如果 code 部分太長,或者要重用,可以寫成 awk指令碼 裡可以分成3部分。begin 條件 en...