語法格式:
一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'
list
rs 指定行分隔符: --
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 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函...