Linux AWK學習
阿新 • • 發佈:2018-03-06
awk講解Awk:
awk 語法: awk 模式 { 操作}
模式: 正則,關系表達式,模式,BEGIN,END,
操作: 由 命令、函數、表達式組成了。 在腳本中,模式不用加引號,而操作還是需要{ },並且{需要和模式在一行
一個模式中有多個操作,那就換行寫
在命令行下面 ,一個引號裏邊有模式,和操作 。兩個模式用分號;隔開
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學習