Linux awk命令基本使用及說明
Linux awk命令基本使用
awk命令是一種處理文本的語言,是一個(gè)強(qiáng)大的文本分析工具,比較適用于文本的格式化。awk命令結(jié)構(gòu):
awk 'BEGIN{commands} pattern{command} END{command}'
awk工作流程可以分為三個(gè)部分:
- 讀取輸入文件之前執(zhí)行的代碼段(由BEGIN關(guān)鍵字標(biāo)識(shí))
- 主循環(huán)執(zhí)行輸入文件的代碼段
- 讀取輸入文件之后的代碼段(由END關(guān)鍵字 標(biāo)識(shí))
基本用法
用法一:
awk '{[pattern] action}' {filename} #行匹配語句 awk ' '這里只能用單引號(hào)。
實(shí)例:
1、創(chuàng)建一個(gè)測(cè)試文本文件如下;
2、輸出test1.txt第一列、第三列和第四列,并且按空格分隔;
awk '{print $1,$3,$4}' test1.txt
格式化輸出,列對(duì)齊;
awk '{printf "%-5s %-5s\n",$3,$4}' test1.txt #這里%-5s的數(shù)字可以更改用來調(diào)整列之間的間隔
用法二:
awk -F #這里的-F相當(dāng)于內(nèi)置變量FS,指定分割字符
awk -F, '{print $1,$2,$3}' test1.txt #將文本中的逗號(hào)替換成空格,進(jìn)行分割 awk 'BEGIN{FS=","}{print $1,$2,$3}' test1.txt #相當(dāng)于內(nèi)置變量FS awk -F '[ ,]' '{print $1,$2,$3}' test1.txt #使用多個(gè)分隔符,先使用空格分割,然后對(duì)分割結(jié)果在使用都好分割
用法三:
awk -v #設(shè)置變量
awk -va=1 '{print $1,$1+a}' test1.txt
awk -vb=s '{print $1,$1b}' test1.txt
用法四:
awk -f {awk腳本} {filename}
awk -f cal.awk test1.txt
使用運(yùn)算符
用法五:
awk '$1>2 {print $0}' test1.txt #輸出第一列大于2的行 awk '$1==3 {print $0}' test1.txt #輸出第一列等于3的行 awk '$1>2 && $2=="carl"{print $0}' test1.txt #輸出第一列大于2,第二列等于carl的行
使用內(nèi)置變量:
內(nèi)置變量有如下多種:
awk '{print NR,FNR,$3}' test1.txt #輸出順序號(hào)NR,匹配文本行號(hào);
指定輸出分割符OFS:
awk '{print $1,$2,$3,$4}' OFS="," test1.txt
使用正則,進(jìn)行字符串匹配
awk '$3~/a/ {print $0}' test1.txt #輸出第三列包含a的所有行,~表示模式開始,//中是模式 awk '/a/' test1.txt #輸出包含a的行
忽略匹配字符的大小寫:
awk 'BEGIN{IGNORECASE=1} /a/' test1.txt #即可以匹配包含A 或 a的行
模式取反:
awk '$3!~/a/ {print $0}' test1.txt #輸出第三列不包含a的所有行,~表示模式開始,//中是模式 awk '!/a/' test1.txt #輸出不包含a的行
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
寶塔Linux面板之好用免費(fèi)的中文Linux VPS主機(jī)控制面板適合快速建站
本篇文章主要介紹了寶塔Linux面板之好用免費(fèi)的中文Linux VPS主機(jī)控制面板適合快速建站,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07windows 10 + vwware+centos 6.5虛擬機(jī)系統(tǒng)安裝Tomcat
這篇文章主要介紹了windows 10 + vwware+centos 6.5虛擬機(jī)系統(tǒng)安裝Tomcat的相關(guān)資料,需要的朋友可以參考下2017-01-01Linux初始化系統(tǒng)盤后重新掛載數(shù)據(jù)盤方法
在本篇文章中我們給大家分享了Linux初始化系統(tǒng)盤后重新掛載數(shù)據(jù)盤的解決方法,有需要的朋友們可以參考下。2018-09-09