1. 程式人生 > >Linux AWK學習

Linux AWK學習

awk講解

Awk:
awk 語法: awk 模式 { 操作}
模式: 正則,關系表達式,模式,BEGIN,END,
操作: 由 命令、函數、表達式組成了。

文本源文件 scores.txt
技術分享圖片

執行awk的方式:
1.命令行下執行
技術分享圖片

2.執行awk腳本 awk -f 腳本名 文件名
3.可執行awk腳本
技術分享圖片

AWK的模式匹配:
1.使用正則模式打印出T開頭的行,只取第一列
技術分享圖片

2.區間模式,即模式一和模式二中間的行會被匹配到
3.BEGIN 模式,在讀取文件行之前操作的 (可以把一些文件描述,變量等寫在此模式)
4.END 模式,在結束時操作的,跟BEGIN相反
寫一個關於BEGIN和END的腳本:
技術分享圖片
註意一個細節問題:

在腳本中,模式不用加引號,而操作還是需要{ },並且{需要和模式在一行
一個模式中有多個操作,那就換行寫
在命令行下面 ,一個引號裏邊有模式,和操作 。兩個模式用分號;隔開

awk中系統內置變量
(記錄大多時候=行)
$0 當前正在處理的記錄
$n 第幾個字段
NF 當前記錄的字段數
NR 已經讀了幾條記錄
FILENAM 文件名
FS 字段分隔符
RS 記錄分隔符 默認:換行符

例子:源文件 articles.txt
技術分享圖片
重新設置分隔符:
技術分享圖片

AWK中也可以支持運算符和表達式

BEGIN {
x=5/2
print x
}

條件表達式:
語法:expression?value1:value2
關系運算符

,<,==, ~,!~,等等

8==8 {print} 即 如果8=8為真,就執行print操作
例子 :~ 是匹配的意思
下面是指: 匹配第一個字段(列)以K開頭的記錄 打印出來
技術分享圖片

Linux AWK學習