欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

awk命令和腳本的編寫啟蒙

awk的 命令是一種處理或分析文本文件的強大方法,特別是按行和列組織的數(shù)據(jù)文件。可以從 命令行運行簡單的awk命令。更復(fù)雜的任務(wù)應(yīng)該作為awk程序(所謂的awk 腳本)寫入文件。

awk命令和腳本的編寫啟蒙

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鐵嶺免費建站歡迎大家使用!

awk命令的基本格式如下:

awk 'pattern {action}' input-file > output-file

這意味著:取輸入文件的每一行; 如果該行包含該模式,則將該操作應(yīng)用于該行并將結(jié)果行寫入輸出文件。 如果省略該模式,則該操作將應(yīng)用于所有行。 例如:

linuxidc@Ubuntu:~/linuxidc.com$ awk '{ print $5 }' linuxidc.txt > linuxmi.txt

該語句獲取每行第5列的元素,并將其作為一行寫入輸出文件“output.txt”中。 變量'$4'指的是第四列。 類似地,您可以使用$1,$2,$3等訪問第一列,第二列和第三列。默認情況下,假定列由空格或制表符(所謂的空格)分隔。 因此,如果輸入文件“l(fā)inuxidc.txt”包含以下行:

  • 1, linuxidc com, Title 599, Price $9.30

  • 2, ninhao linuxidc, Title 761, Price $5.90

  • 3, naike xie, Title 880, Price $9.10

  • 4, Lady Gaga, Title 198, Price $1.30

  • 5, Johnny Cash, Title 582, Price $6.50

  • 6, Elvis Presley, Title 370, Price $9.30

  • 7, John Lennon, Title 571, Price $8.90

  • 8, Michael Jackson, Title 673, Price $7.50

  • 9, linuxidc com, Title 585, Price $1.80

然后該命令將以下行寫入輸出文件“l(fā)inuxmi.txt”:

linuxidc@ubuntu:~/linuxidc.com$ cat linuxmi.txt
599,
761,
880,
198,
582,
370,
571,
673,
585,

awk命令和腳本的編寫啟蒙

如果列分隔符不是空格或制表符(例如逗號),則可以在awk語句中指定,如下所示:

linuxidc@ubuntu:~/linuxidc.com$ awk -F, '{ print $3 }' linuxidc.txt > linuxmi.txt

如果認為列被逗號分隔,這將從每行的第3列中選擇元素。 因此,在這種情況下,輸出將是:

linuxidc@ubuntu:~/linuxidc.com$ cat linuxmi.txt
 Title 599
 Title 761
 Title 880
 Title 198
 Title 582
 Title 370
 Title 571
 Title 673
 Title 585

awk命令和腳本的編寫啟蒙

大括號內(nèi)的語句列表('{','}')稱為塊。 如果將條件表達式放在塊前面,則只有條件為真時才會執(zhí)行塊內(nèi)的語句。

awk '$7=="\$7.30" { print $3 }' linuxidc.txt

在這種情況下,條件是$7=="\$7.30",這意味著第7列的元素等于$7.30。 美元符號前面的反斜杠用于阻止系統(tǒng)將$7解釋為變量,而是從字面上理解美元符號。

因此,這個awk語句打印出每行第3列的元素,第7列的“$7.30”。

您還可以使用正則表達式作為條件。 例如:

linuxidc@ubuntu:~/linuxidc.com$ awk '$7=="\$7.30" { print $3 }' linuxidc.txt

兩個斜杠('/')之間的字符串是正則表達式。 在這種情況下,它只是字符串“30”。 這意味著如果一行包含字符串“30”,系統(tǒng)將在該行的第3列打印出該元素。 上例中的輸出將是:

linuxidc@ubuntu:~/linuxidc.com$ awk '/30/ { print $3 }' linuxidc.txt
com,
Gaga,
Presley,

awk命令和腳本的編寫啟蒙

如果表元素是數(shù)字,awk可以在它們上運行計算,如下例所示:

linuxidc@ubuntu:~/linuxidc.com$ awk '{ print ($2 * $3) + $7 }' linuxidc.com.txt

awk命令和腳本的編寫啟蒙

除了訪問當前行元素($1,$2等)的變量之外,還有變量$0表示完整行(行),變量NF表示字段數(shù)。

您還可以在此示例中定義新變量:

linuxidc@ubuntu:~/linuxidc.com$ awk '{ sum=0; for (col=1; col<=NF; col++) sum += $col; print sum; }' linuxidc.com.txt

awk命令和腳本的編寫啟蒙

這將計算并打印每行所有元素的總和。

awk語句經(jīng)常與sed命令結(jié)合使用。

原文來自: https://www.linuxprobe.com/awk-command-script.html

當前文章:awk命令和腳本的編寫啟蒙
URL標題:http://www.chinadenli.net/article14/gisjge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)虛擬主機網(wǎng)站策劃靜態(tài)網(wǎng)站網(wǎng)站導(dǎo)航動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)