linux下的命令awk linux的awk命令大全

linux awk命令怎么用?

linux awk命令怎么用? awk:用于一行中分成數(shù)個(gè)“欄位”來處理。適合處理 小型資料。

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

執(zhí)行模式:awk '條件型別1{動作1} 條件型別2{動作2} ...' filename

# last | awk '{print $1 "\t" $3}' == 檢視登入者的資料,只顯示登入名和ip地址,并以[tab]隔開

awk 的內(nèi)建變數(shù)

變數(shù)名稱 代表的含義

NF 每一行($0)擁有的欄位總數(shù)

NR 當(dāng)前 awk 所處理的是 “第幾行” 資料

FS 當(dāng)前分隔符,預(yù)設(shè)空格鍵

awk 的邏輯運(yùn)算子

運(yùn)算單元 代表含義

大于

小于

= 大于或等于

= 小于或等于

== 等于

!= 不等于

范例:

cat /etc/passwd | awk '{FS=":"} $3 10 {print $1 "\t" $3}' == 檔案/etc/passwd是以":"分隔的,檢視第三欄小于10的資料,并且只顯示帳號與第三欄

以上是我對awk的總結(jié),希望對你有幫助,是我寫的哦,不是復(fù)制的。

linux 怎么用awk命令 取出一段文字

awk '/DIMENSION NAME="CCCCCC" SRC_TYPE="INTERNAL"/,/DIMENSIONS/ {print $0}' filename

Linux awk命令問題

head -n 3 /etc/passwd|awk -F ':' '$1="root"' 這里$1="root",表示將第1列的值賦值為root,因此上述命令表示:將/etc/passwd中前3行按照‘:’分隔后第一列以root顯示,并列印其他列。

awk -F ':' '$3=="0"' /etc/passwd

這里$3=="0",表示將第三列與"0”進(jìn)行匹配,以什么方式匹配呢?以‘:’分隔后的第三列進(jìn)行匹配并列印。這里是匹配列印,所以列印的是匹配的那一行(被:分隔后),而不是顯示分隔后的列。

所以,區(qū)別在于一個(gè)是分隔后賦值列印分隔后列的值,一個(gè)是按照指定分隔方式進(jìn)行匹配找到匹配的行,列印的是匹配的那一行。

linux的awk命令問題

一行里 第一個(gè)元素和第三個(gè)元素

linux下 awk命令問題

1、其實(shí)這樣基本滿足要求。但是確實(shí)不夠嚴(yán)謹(jǐn)。試試是否可以。

ps -le | grep sshd | awk '{print $4}'

2、對ps 命令用的最多的是ps -ef 對el 我不是很了解具體輸出什么。當(dāng)然,是不是你壓根就沒有這個(gè)sshd服務(wù)啟動。這些都先驗(yàn)證一下。一步一步的輸出,看看問題出現(xiàn)在管道的哪一個(gè)環(huán)節(jié)。

3、或者這個(gè) $14==sshd 欄位你指定錯(cuò)了。 awk $指定的變數(shù)是從1 開始的。$0是整個(gè)行。這個(gè)不要忘記了哦。

如果上述1第一種情況可以輸出,第二種2不可以話,可能就驗(yàn)證了我的假設(shè)。你欄位拆解出現(xiàn)錯(cuò)誤。把$14 這個(gè)欄位好好看看。

linux awk命令基礎(chǔ) 怎么在終端寫

awk一般用于文字處理,通常用作資料提取。終端書寫demo

awk '{print }' info.txt

以上是輸出文字檔案info.txt的所有內(nèi)容,請使用實(shí)際檔案進(jìn)行替換info.txt

ps -ef|grep process_name | awk -F"" '{print $2}'

以上是查詢process_name程序的ID資訊,把查詢資訊作為引數(shù)傳給awk進(jìn)行過濾,請使用實(shí)際程序名替換process_name。

awk命令在 linux和aix下的區(qū)別

三種呼叫awk的命令方式:

1.命令列方式:awk [-F field-separator] 'mands' input-file(s)

-F選項(xiàng)可選:awk -F: 'mands' input-file

2.將所有的awk命令插入一個(gè)檔案,并是awk程式可執(zhí)行,然后用awk命令直譯器作為指令碼的首行,

以便通過鍵入指令碼名稱來呼叫它。

3.將所有的awk命令插入一個(gè)單獨(dú)檔案,然后呼叫:

awk -f awk-script-file input-files(s)

-f:指明在檔案awk-script-file中的awk指令碼

input-file(s):使用awk進(jìn)行瀏覽的檔名。

awk指令碼

在命令中呼叫awk時(shí),awk指令碼由各種操作和模式組成。

-F,awk每次讀一條記錄或一行,并使用指定的分隔符分分隔指定域;

所沒分隔符,則使用空格。

任何awk語句都由模式和動作組成

模式,決定動作語句何時(shí)觸發(fā)及觸發(fā)事件,若忽略模式部分,動作將時(shí)刻保持執(zhí)行狀態(tài)。

模式,可是任何條件語句,或符合語句,或正則表示式。

BEGIN:設(shè)定計(jì)數(shù),列印頭,在任何文字瀏覽動作之前;

END:用來在awk完成檔案瀏覽動作后列印輸出檔案總數(shù)和結(jié)尾狀態(tài)標(biāo)志。

動作,在{}內(nèi)指定;大多用來列?。焕锩婵砂篿f,looping,回圈推出結(jié)構(gòu);

若不指明采取動作,awk將列印所有瀏覽出來的記錄。

如何在Linux中使用awk命令

awk例項(xiàng)

1、cat /etc/passwd|awk -F: '{print $1}'

2、linux的awk一般都是gawk,/bin/awk - gawk

3、awk ‘/abc/’ file.txt 顯示檔案中包含abc行。類似grep abc a.txt

4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,顯示當(dāng)前記錄號、域數(shù)和每一行的第一列和最后一列。

-F引數(shù)可以設(shè)定分割引數(shù),例如按:分割

awk -F: ‘{print $1}’ /etc/passwd

或者cat file|awk -F “|” ‘{print $1}’

5、awk程式語言

cat v.txt|awk ‘{print length($1)}’

6、awk中使用NR和FNR,一般在awk處理多個(gè)檔案時(shí),NR==FNR才有意義

NF 當(dāng)前記錄中的欄位數(shù)。

NR 當(dāng)前記錄數(shù)。

FNR同NR,但相對于當(dāng)前檔案。

awk ‘{print NR,FNR}’ test.txt test2.txt

awk ‘{if(NR==FNR){a[FNR]=$1;}else{print $1,a[FNR]}}’ b.txt a.txt

7、列印奇數(shù)行與偶數(shù)行

awk ‘NR%2’ test.txt

awk ‘!(NR%2)’ test.txt

8、殺死tomcat的s.sh指令碼

#!/bin/sh

ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9

9、列印前7列

cat a.txt|awk ‘{NF=7}1’ b.txt

tail -f aess.log|awk ‘NF=7′ OFS=’\t’ b.txt

cut -d”,” -f3-6 urfile

LINUX系統(tǒng)怎么使用awk命令實(shí)現(xiàn)下述操作

cat file|awk -F"name=" '{print $2}'|awk -F\" '{print $1}'

試試看,第二個(gè)”的轉(zhuǎn)義,我沒測試,可以自己調(diào)下

Linux入門系列——awk命令詳解

awk是一個(gè)強(qiáng)大的文本分析工具,與grep、sed相比,awk在對數(shù)據(jù)分析并生成報(bào)告時(shí),顯得有很大的優(yōu)勢。

awk有三個(gè)不同的版本:awk、nawk和gawk,在沒有做特殊說時(shí)的時(shí)候默認(rèn)的就是gawk,gawk是awk的GNU版本。

其中command是真正的awk命令,-F表示域的分隔符,是個(gè)可選項(xiàng)。Filename是等待處理的文件

將所有的awk命令寫入到一個(gè)文件,并使用該文件有X權(quán)限,然后awk命令解釋器作為腳本的首行,也就是說可以把腳本最開始的 #!/bin/bash 換成 #!/bin/awk

最后直接執(zhí)行這個(gè)腳本文件就行了。

-f 指定要加載的awk腳本,是一個(gè)文件。Filename是等待處理的文件

awk的工作流程是這樣的:讀入一行后(最后面帶有” ”的),就按-F指定的分隔符來將該行劃分成N個(gè)區(qū)域,$0表示所有的區(qū)域,$1表示第一個(gè)域,$2表示第二個(gè)域,依此類推,$n表示第n個(gè)域。

總結(jié):awk先執(zhí)行BEGIN內(nèi)的命令,然后再讀入文件中的行,接著就是按照指定的分隔符將該行分成N個(gè)區(qū)域,然后再來執(zhí)行模式所對應(yīng)的動作action。然后,再來讀入第二行。。再重復(fù)執(zhí)行action,直到所有的行都處理完成。最后再執(zhí)行END中的命令。

注意:' // '之間是支持正則表達(dá)式的,如果此處只有pattern,而沒有action,那么awk默認(rèn)會把匹配到的行打印出來。

awk中的print還可以使用C語言中的printf來替代。在輸出格式比較復(fù)雜的時(shí)候使用printf函數(shù)會比print函數(shù)要更直觀一些,如下:

還可以使用-v key=value來自定義變量。如下:

awk中的條件語句是從C中借鑒過來的

語法:if (condition) {then-body} else {else-body}

例如使用awk來統(tǒng)計(jì)某個(gè)目錄下的普通文件的大小,不包括子目錄的,并過濾掉目錄。

循環(huán)語句也和C中的一樣,支持while、do/while、for、continue、break等關(guān)鍵字。

break和continue常用于循環(huán)中;

在awk中,數(shù)組的下標(biāo)可以是數(shù)字或字母。一般awk中的數(shù)組的作用是從記錄中收集信息,用于計(jì)算總和、統(tǒng)計(jì)單詞等。

在awk中要刪除一個(gè)元素的時(shí)候使用 delete array[index]

更多請參見awk官方文檔[]

linux awk命令詳解

awk是一個(gè)強(qiáng)大的文本分析工具,相對于grep的查找,sed的編輯,awk在對數(shù)據(jù)分析并生成報(bào)告時(shí),顯得尤為強(qiáng)大。

簡單來說awk就是把文件逐行的讀入,以空格為默認(rèn)分隔符將每行切片,切開的部分再進(jìn)行各種分析處理。

awk有三個(gè)不同的版本:awk、nawk和gawk,未作特別說明,一般指gawk,gawk是awk的GNU版本。

之所以叫awk是因?yàn)槠淙×巳粍?chuàng)始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family

Name的首字符。

awk格式:

格式: sed -n '3p' sed.txt

找誰干啥(條件動作)

awk格式

#取出/etc/passwd 第1行的第1列和第3列

awk -F: 'NR==1{print $1,$3}' /etc/passwd

awk 選項(xiàng) '條件{動作}' /etc/passwd

條件: 哪一行,過濾什么內(nèi)容

動作: print輸出與顯示 ,計(jì)算....

awk取行:與sed類似

案例01:取出sed.txt的第2行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk 'NR==2' sed.txt

102,zhangya,CTO

#awk '行號 等于 2' sed.txt

#NR awk內(nèi)置變量

Number of Record 記錄號(行號)

案例02:取出sed.txt中包含oldboy或lidao的行

[root@oldboy81-golden-lnb /oldboy]# sed -rn '/oldboy|lidao/p' sed.txt

103,lidao007,COO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# awk '/oldboy|lidao/' sed.txt

103,lidao007,COO

110,lidao,COCO

案例03:取出文件第2行到第5行內(nèi)容

#awk '行號大于等于2 并且 行號小于等于5' sed.txt

#方法01

awk 'NR=2 NR=5' sed.txt #必會

表示并且.

#方法02

sed -n '2,5p' sed.txt

#方法03 了解

awk 'NR==2,NR==5' sed.txt #從行號是2的行開始 到 行號是5的行結(jié)束( 了解)

案例04:取出文件第3行到最后一行內(nèi)容

[root@oldboy81-golden-lnb /oldboy]# awk 'NR = 3' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

[root@oldboy81-golden-lnb /oldboy]# sed -n '3,$p' sed.txt

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

案例05:取出從包含oldboy的行到lidao的行

[root@oldboy81-golden-lnb /oldboy]# cat sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

104,yy,CFO

105,feixue,CIO

110,lidao,COCO

root@oldboy81-golden-lnb /oldboy]# sed -n '/old/,/lidao/p' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

[root@oldboy81-golden-lnb /oldboy]# awk '/old/ , /lidao/' sed.txt

101,oldgirl,CEO

102,zhangya,CTO

103,lidao007,COO

新聞名稱:linux下的命令awk linux的awk命令大全
網(wǎng)頁鏈接:http://muchs.cn/article2/dosjcoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站排名定制網(wǎng)站、網(wǎng)站設(shè)計(jì)公司商城網(wǎng)站、外貿(mào)建站

廣告

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

成都網(wǎng)頁設(shè)計(jì)公司