新聞中心
熟練掌握 linux 中 awk 命令可以給我們帶來很多便利,awk 具有處理海量數(shù)據(jù)文本文件的強(qiáng)大功能,并擁有很強(qiáng)的文本格式處理功能,具體有哪些妙用呢?我們可以一起來看看吧。

首先,我們先來介紹 awk 命令的基本語法結(jié)構(gòu):
1. awk ‘模式 {動(dòng)作}’ 輸入文件
其中,模式用于指定特定的內(nèi)容,動(dòng)作則定義了當(dāng)匹配到特定的模式時(shí),要執(zhí)行的命令,輸入文件則指定了需要處理的文檔,可以是文件或目錄,也可以是管道程序輸出的文本,具體用法如下:
//例如,想要按行打印所有四位數(shù)
$ awk ‘/^[0-9][0-9][0-9][0-9]$/ {print $0}’ filename
我們可以利用 awk 命令將文本的每一行的字段提取出來,例如:
//讀取文件中的某一行
$ awk ‘NR==4 {print}’ filename
//提取某一行的前幾個(gè)字段
$ awk ‘BEGIN {FS=” “; OFS=” “} {print $1, $2}’ filename
//計(jì)算某字段的總和
$ awk ‘{sum+=$1} END {print sum}’ filename
//根據(jù)某字段分類輸出
$ awk ‘$1==”foo” {print $0}’ filename
此外,awd 還可以用于文本格式轉(zhuǎn)換,比如我們可以將大量 CSV 格式文本轉(zhuǎn)換為 JSON 格式,再如將每一行作為數(shù)組元素進(jìn)行輸出等,詳細(xì)示例可以參考以下代碼:
//CSV 轉(zhuǎn)換為 JSON
$ awk ‘BEGIN {
FS = “,”;
OFS = “, “
print “{“
}
{
if (NR > 1)
{
for (i=1; i
{
printf “\”%s\”: \”%s\””, $i, $(i+1);
if (i
{
printf “%s”, OFS
}
}
printf “}”
}
}’ filename
另外,awd 的另一大特性是可以實(shí)現(xiàn)簡(jiǎn)單的程序分析,我們可以實(shí)現(xiàn)一些簡(jiǎn)單的條件判斷和循環(huán)判斷,也可以利用函數(shù)實(shí)現(xiàn)更復(fù)雜的程序分析,具體用法如下:
//讀取文件中的某一行,如果所讀行的字段和預(yù)設(shè)值相同,打印
$ awk ‘NR==4 {
if ($1 == “foo”)
}’ filename
以上就是 awk 命令妙用的簡(jiǎn)單介紹,awk 命令可以給我們帶來很多以Linux 管理工作的便利,希望本文對(duì)你有所幫助。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
網(wǎng)站標(biāo)題:利用Linux掌握awk命令的妙用(linux命令awk)
URL地址:http://www.dlmjj.cn/article/djhiiih.html


咨詢
建站咨詢
