歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Awk實用程序

Awk實用程序

日期:2017/3/1 10:08:32   编辑:Linux編程

1 前面的話

awk常常用於處理數據和生成報告。它以逐行掃描的方式,查找匹配某個特定模式的文本,同時可以對匹配的行進行非常精細的操作。

2 awk的格式:

awk 'pattern {action}' filename

2.1 pattern

其中pattern指的就是匹配的模式,類似於grep,不過和sed的匹配更相似。例如'/ mail /'就是匹配以mail開始的行。

2.2 action

action類似於sed在匹配模式後面跟上的命令,它的所用就是對匹配到的文本進行某種操作。例如'/ mail / {print $1}',它將匹配以mail開頭的行,並將其第一個字段打印出來。

3 awk的工作原理

awk以一行作為輸入,並將該行賦給內部變量$0;接著,awk將根據分割符將行分割成多個字段,每一個字段按照順序存儲在$1, $2… 最多可以達到100個。這個很類似shell腳本的參數,$0代表本身,$1往後是位置參數,代表每一個參數。接著awk可以對每一個字段進行相應的操作,這是grep和sed很難實現的。

~$ awk '/calls/ {print $2, $5}' test

System provided

Library within

# 首先匹配包含calls的行,接著顯示第2和第5個字段。

4 awk環境變量

NF 字段數

NR 記錄數

FS 分割符

OFS 輸出分割符

Copyright © Linux教程網 All Rights Reserved