5. awk
awk 是一個維護和處理文本數(shù)據(jù)文件的強大語言勿决。在文本數(shù)據(jù)具有一定的格式時叔营,即每行數(shù)據(jù)包含多個以分隔符分隔的字段時勺三,顯得尤其有用。即便是駛?cè)氲奈募]有一定的格式代态,仍然可以使用 awk 進行基本的處理。簡言之疹吃,awk 是一種能處理從瑣碎的小事到日常例行公事的強大語言
5.1 基礎語法
5.1.1 語法格式
awk -F<s> '/PATTERN/ {ACTION}' FILE_NAME
或者直接
awk -F<s> '{ACTION}' FILE_NAME
5.1.2 解釋
-F<s>
指定分隔符蹦疑。 默認是以空格作為分隔符。后續(xù)會介紹如何使用-F
設定分隔符萨驶,以及如何在 BEGIN 中設置分隔符/PATTERN/
:
指定匹配模式歉摧。 如果沒有指定匹配模式,則 awk 將處理輸入文件中的所有記錄{ACTION}
:
指定處理方式腔呜。 awk 命令中所有的處理方式都要寫在花括號中叁温,多個處理方式之間以分號 ' ; ' 隔離FILE_NAME
:
指定待處理的文件。 可以是多個文件核畴,當然 awk 也支持管道數(shù)據(jù)
5.1.3 舉例
$ awk -F: '/nobody/ {print $1}' /etc/passwd
nobody
-
-F:
:指定分隔符為:
-
/nobody/
:匹配的模式指定為“包含nobody
”的行 -
{print $1}
:執(zhí)行的動作為打印$1
膝但,其中$1
代表以:
分隔的第一區(qū)段 -
/etc/passwd/
:指定所要處理的文件