新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解Linux中awk使用方法
awk是linux中處理文本的強大工具,或者說是一種專門處理字符串的語言,它有自己的編碼格式。awk的強大之處還在于能生成強大的格式化報告,下面為大家分享一下Linux中awk使用方法。

awk內(nèi)置變量
ARGC 命令行參數(shù)個數(shù)
ARGV 命令行參數(shù)排列
ENVIRON 支持隊列中系統(tǒng)環(huán)境變量的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數(shù)
FS 設(shè)置輸入域分隔符,等價于命令行 -F選項
NF 瀏覽記錄的域的個數(shù)
NR 已讀的記錄數(shù)
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
$0變量是指整條記錄。$1表示當(dāng)前行的第一個域,$2表示當(dāng)前行的第二個域,......以此類推。
$NF是number finally,表示最后一列的信息,跟變量NF是有區(qū)別的,變量NF統(tǒng)計的是每行列的總數(shù)
常用的命令展示
awk擅長列輸出
搜索/etc/passwd有root關(guān)鍵字的所有行
awk '/root/' /etc/passwd
【這種是pattern的使用,匹配了pattern(這里是root)的行才會執(zhí)行action(沒有指定action,默認(rèn)輸出每行的內(nèi)容)】 搜索/etc/passwd有root關(guān)鍵字的所有行,并顯示對應(yīng)的shell
awk -F: '/root/ {print $7}' /etc/passwd
統(tǒng)計/etc/passwd:文件名,每行的行號,每行的列數(shù),對應(yīng)的完整行內(nèi)容:
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd
使用printf替代print,可以讓代碼更加簡潔,易讀
awk -F: '{printf ("filename:%10s, linenumber:%3s,column:%3s,content:%3f\n",FILENAME,NR,NF,$0)}' /etc/passwd
打印/etc/passwd/的第二行信息
awk -F: 'NR==2{print "filename: "FILENAME, $0}' /etc/passwd
awk的過濾使用方法
ls -lF | awk '/^d/'
指定特定的分隔符,查詢第一列
awk -F ":" '{print $1}' /etc/passwd
網(wǎng)站名稱:詳解Linux中awk使用方法
文章URL:http://m.fisionsoft.com.cn/article/cdcddhj.html


咨詢
建站咨詢
