shell程式設計 awk基礎

2022-07-02 23:09:10 字數 3429 閱讀 8027

語法格式:

awk'begin{}patternend{}'file_name

standard output | awk'begin{}patternend{}'

基本格式

awk'begin{}patternend{}'

begin{} 文字處理前所做的處理

pattern 對文字具體的處理

end{} 文字處理後所做的處理

常用變數

最常用:

$0 整行

$1 首行

$  末行

$nf 通常用於指定最後乙個字段

fs 列分隔符(預設為空格)

rs 行分隔符(預設為換行)

nf 有多少列

例項awk''passwd 輸出整行內容

awk'begin'passwd 輸出所有行的第乙個字段

awk''passwd輸出每一行的字段個數(多少列)

awk'begin'listrs 指定行分隔符: --

printf的用法

最常用 

%s 字串格式

%d 十進位制格式

%f 浮點數格式

awk'begin'passwd 列印字串,分隔符為":",列印後換行

awk'begin'passwd 加入佔位符美化,%20s表示佔位20個字元

awk'begin'passwd "-"表示左對齊

awk'begin'passwd 列印浮點數,小數點後2位(預設小數點後4位)

awk的匹配模式

awk'begin/root/'passwd匹配passwd檔案行中含有root字串的所有行

awk'/^nginx/'passwd匹配passwd檔案行中以nginx開頭的所有行

運算子匹配

awk'begin$3<50'passwd以 : 為分隔符,匹配passwd檔案中第3個字段小於50的所有行資訊

awk'begin$7=="/bin/bash"'passwd以:為分隔符,匹配passwd檔案中第7個字段為/bin/bash的所有行資訊

awk'begin$7!="/bin/bash"'passwd以:為分隔符,匹配passwd檔案中第7個字段不為/bin/bash的所有行資訊

awk'begin$3 ~ /[0-9]/'passwd以:為分隔符,匹配passwd檔案中第3個字段包含3個數字以上的所有行資訊

布林運算子匹配

awk'begin$1=="ftp" || $1=="mail"'passwd為分隔符,匹配/etc/passwd檔案中包含ftp或mail的所有行資訊

awk'begin$3<50 && $4>50'passwd以:為分隔符,匹配/etc/passwd檔案中第3個字段小於50並且第4個字段大於50的所有行資訊

awk'begin/^nginx/'passwd匹配包含 nginx開頭 的行

awk'begin$3==1'passwd關係運算子,uid 等於1的行

awk'begin$3~/[0-9]/'passwd匹配uid(數字)為3位及以上的行

awk'begin$0!~/\/sbin\/nologin/'passwd匹配不包含/sbin/nologin 的行

awk'begin$3<50 && $7~/\/bin\/bash/ 'passwd找出 uid 小於50,且bash為 /bin/bash 的行

語法格式

第一種形式: 基於檔案

1awk'begin{}patternend{}'file_name

第二種形式: 基於標準命令格式

1standard output | awk'begin{}patternend{}'

Shell程式設計基礎 06 awk命令入門

awk是一款報告生成器,更適合格式化文字,對文字進行較複雜格式處理,常用於提取資訊 它擁有強大的文字格式化的能力,可以把 報告 理解為 報表 或者 也就是說,我們可以利用awk命令,將一些文字整理成我們想要的樣子,比如把一些文字整理成 表 的樣子 grep sed awk被稱為linux中的 三劍客...

shell程式設計 awk 02

awk處理條件 認識awk處理條件的設定 1.使用正則設定條件 輸出以bash結尾的完整記錄 輸出整行 awk f bash etc passwd 輸出包含root的行 awk f root etc passwd 輸出root或者tom賬戶的使用者名稱和uid資訊 awk f root tom 輸出...

shell程式設計之awk命令詳解

shell程式設計之awk命令詳解 linux 本篇部落格主要介紹linux常用命令中的對文字和資料進行處理的命令awk的用法。awk命令 awk是一種程式語言,用於在linux unix下對文字和資料進行處理。資料可以來自標準輸入 stdin 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函...