前言:
awk作爲Linux三劍客之一,是一個功能強大的編輯工具,用於文本處理。
一、awk的語法
1.awk有兩種語法格式
(1)awk 選項 ‘模式或條件 {指令}’ 文件
模式可以爲條件語句或正則表達式;每條指令可以包含多條語句,多條語句使用逗號或空格來分隔“{}”;常用的選項-F用來指定分隔符,默認空格
(2)awk -f 腳本文件 文件
2.awk常見內置變量
變量 | 解釋 |
---|---|
FS | 指定字段分隔符,默認空格 |
NF | 當前處理行的字段個數 |
NR | 當前處理行的行號 |
$0 | 當前處理行的整行內容 |
$n | 當前處理行的第n個字段 |
3.awk還能使用運算符作爲條件
運算符 | 解釋 |
---|---|
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
== | 等於 |
!= | 不等於 |
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
% | 取餘 |
^ | 乘方 |
二、awk使用示例
1.顯示處理文件的所有內容(相當於cat)
awk '{print $0}' file
2.顯示以XXX開頭的行
awk '/^XXX/ {print}' file
3.顯示以XXX結尾的行
awk '/XXX$/ {print}' file
4.顯示第N行到第M行
awk 'NR==N,NR==M{print}' file
awk '(NR>=1)&&(NR<=3){print}' file
5.顯示N行和M行的內容
awk '(NR==1)||(NR==3){print}' file
6.顯示奇數行
awk '(NR%2)==1{print}' file
7.顯示偶數行
awk '(NR%2)==0{print}' file
8.顯示第n個字段小於X的行
awk -F '!($N < X)' file
9.顯示處理文本的行號
awk -F '{print NR,$0}' file
10.顯示第3行到第7行中以冒號爲分隔符的第1列和第7列的內容
awk -F ":" 'NR==3,NR==7{print$1,$7}' file
11.保留原來的格式,輸入以冒號爲分隔,文件中的前4個字段
awk -F ":" '{print $1,$2,$3,$4}' file
12.顯示已冒號爲分隔符的第1列和第3列數據
awk -F ":" '{print$1,$3}' file