awk報告生成器

2021-09-20 17:16:53 字數 1985 閱讀 4045

awk,aho,weinberger,kernighan

gawk,gnu awk

我們在linux

上使用的

awk其實是

gawk

的鏈結檔案

gawk   [options]  'program' file

program:pattern

語句之間用分號分割

ps:『』

options:

-f:指明輸入時用到的字段分隔符,預設是空白分隔符

cat/etc/fstab | tail -4 | awk ''

列印出切片第一欄位和第四字段

ps:用逗號分隔各個字段

1、內建變數

:fs,

輸入input fieldseperator   ofs,

輸出rs='  ' 

輸入空格作為換行符

ors='  '

輸出時

nf,'' 

每行字段數

$nf最後一欄位

nr,'' 

行編號fnr,

每個檔案

argc,

命令列引數的個數

ar**

awk -v fs=':' -vofs='-' '' /etc/passwd

指定輸入

:分隔符,輸出

-分隔符

2、自定義變數:

-v var=value

,區分大小寫

awk -vtest='hello' 'begin' /etc/fstab 

awk'' /etc/fstab 

3、printf命令

格式化輸出,printf format,item1,item2,……

format

必須給出,不回自動換行,需要顯示給出

\n,需要分別為後面沒個

item

指定格式符

格式符:%c,ascii碼    %d,顯示十進位制整數   %e,科學計數法   %f,浮點數 %g,%g科學計數或浮點數   %s顯示字串  %u無符號  %%百分號自身      左對齊減號,右對齊加號

awk -f: '' /etc/passwd

4、算數操作符:

+,-,*,/,^,%

字串操作符號:沒有符號的操作符字串連線,賦值操作符,比較操作符,模式匹配~不匹配!~,邏輯操作符&&或||非

!,函式呼叫

function(),

條件表示式selector?if-true-expression:if-false-expression

awk -f:'' /etc/passwd

5、pattern

empty:

空模式,匹配每一行

/pattern/

僅處理匹配到的

relational

關係表示式,結果為真為假,結果為真的才被處理,一般結果為非

0值都為真

6、action

expressions

表示式

controlstatements:if,while

compoundstatements

組合語句

input statements

output statements

7、控制語句

if(條件)

if(條件) else

while(條件)

dowhile()

for(expr1;expr2....)

deletearray[index]

刪除陣列中元素

deletearray

刪除整個陣列

exit

awk -f:'",$1} else }' /etc/passwd

awk -f:'' /etc/passwd

awk'' /etc/fstab 

awk -f:'/^root/;i++}}'./passwd 

awk(報告生成器)詳解

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk a.k.a.aho,kernighan and weinberger awk的三...

Linux Shell程式設計 awk 報告生成器

awk 處理機制 awk 會逐行處理文字,支援在處理第一行之前做一些準備工作以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下 begin 讀入第一行文字之前執行,一般用來初始化操作 逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令 end 處理完最後一行文字之後執行,一般用...

Shell中的awk報告生成器

一.awk 報告生成器 awk的處理機制 awk會逐行處理文字,支援在處理第一行之前做一些準備工作,以及在處理完最後一行做一些總結性質的工作,在命令格式上分別體現如下 begin 讀入第一行文字之前執行,一般用來初始化操作 逐行處理,逐行讀入文字執行相應的處理,是最常見的編輯指令 end 處理完最後...