国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux文本三劍客---awk

這篇具有很好參考價(jià)值的文章主要介紹了Linux文本三劍客---awk。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

AWK是什么

Linux文本三劍客之一(grep,sed,awk),功能最強(qiáng)大的文本工具。

逐行讀取輸入的文本內(nèi)容,默認(rèn)以空格和tab鍵作為分隔符。但是多個(gè)空格或者tab鍵的空格,會(huì)自動(dòng)壓縮成一個(gè),然后按照指定的模式和條件執(zhí)行編輯命令

可以在免交互的情況下,實(shí)現(xiàn)復(fù)雜的文本操作。完成自動(dòng)化配置。

awk格式

awk '操作符 action' file

操作符:想干啥

action:怎么做

file:處理對(duì)象?

例如:

awk 'BEGIN{x=1};{x++};END{處理動(dòng)作}' 文件名

awk '操作符 {處理動(dòng)作}' 文件名

{}外部表示定義條件

{}內(nèi)指定操作

BEGIN對(duì)條件做初始化操作

for ((i=1;i<=10;i++))

awk常用選項(xiàng)

-F:指定分隔符,如果是空格,tab鍵,可以不加

-v:變量賦值,awk無(wú)法從外部獲取變量

awk的內(nèi)置變量:

NR:需要處理行號(hào)

FS:列分隔符 和F作用一致,如果用FS,則? FS=":"

OFS:輸出內(nèi)容的列分隔符

NF:表示最后一個(gè)字段

$n:內(nèi)置變量

awk '{print NR}' /etc/passwd

顯示行號(hào)

awk '{print NR $0}' /etc/passwd

顯示行號(hào)和內(nèi)容

awk 'NR==3,NR==5{print}' /etc/passwd

第三行和第五行

awk 'NR==3;NR==5{print}' /etc/passwd

第三行到第五行

awk '(NR>=3)&&(NR<=5){print}' test.txt

第三行到第五行

awk 'NR%2==0{print}' test.txt

打印偶數(shù)行

awk 'NR%2==1{print}' test.txt

打印奇數(shù)行

awk的運(yùn)算--求冪運(yùn)算

[root@hj ~]# awk 'BEGIN{print 2^3}'

8

[root@hj ~]# awk 'BEGIN{print 2**3}'

8

awk按行取列(最重要)

awk -F: '{print $2,$NF}' /etc/passwd

大寫(xiě)的NF為最后一列

$x:第幾列

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

表示打印第二列和最后一列

AWK的精確篩選

$n (> < ==);進(jìn)行數(shù)值對(duì)比

$n~"字符串" 代表這個(gè)字段包含某個(gè)字符串

$n!~"字符串" 代表這個(gè)字段不包含某個(gè)字符串

$n=="字符串" 代表這個(gè)字段要和字符串相同

$n!="字符串" 取反,不為某個(gè)字段

$NF:代表最后一個(gè)字段

下面舉幾個(gè)例子方便大家理解:


1./etc/passwd 輸出最后一個(gè)字段中包含bash所在行的第一個(gè)字段和最后一個(gè)字

awk -F: '$NF~"bash" {print $1,$NF}' /etc/passwd

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

2./etc/passwd 只有第一列是root的行,才打印他的第六行

awk -F: '$1=="root" {print $6}' /etc/passwd

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

3.輸出最后一個(gè)字段,不包含bash,打印第一列和第六列

awk -F: '$NF~"bash" {print $1,$6}' /etc/passwd

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

需要注意:

~:是包含的意思

==:為“是”的意思

二者有很大區(qū)別

4.指定第6個(gè)字段為/home/hj?而且最后一個(gè)字段為/bin/bash 滿(mǎn)足條件的輸出第一列和最后一列

awk -F: '($6=="/home/hj")&&($NF=="/bin/bash") {print $1.$NF}' /etc/passwd

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

條件判斷打印

結(jié)合if語(yǔ)句使用

if $3>500 打印所有

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

AWK三元表達(dá)式

awk三元表達(dá)式繼承了java,格式和Java也一樣

awk '{條件表達(dá)式1 ? A表達(dá)式或者值:B表達(dá)式或者值}' 文件名

awk -F: '{max=($3>=$4)?$3:$4;{print max $0}}' /etc/passwd

?:

if else

if [ $3>=$4 ]

then

echo $3

else

echo $4

fi

文本內(nèi)容匹配打印

打印/etc/passwd中以root開(kāi)頭的行

awk '/^root/{print}' /etc/passwd

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

getline函數(shù):getline和管道符以及重定向符號(hào)在一塊的時(shí)候,才有特殊功效

重定向:<> 把其中一個(gè)文件的內(nèi)容傳給另外一個(gè)

| :輸出指定內(nèi)容,先到定義的變量,再由getline調(diào)用變量當(dāng)中的內(nèi)容,最后打印出結(jié)果。

getline函數(shù)運(yùn)行之后,會(huì)改變awk的內(nèi)置變量,讀取的行數(shù)也會(huì)發(fā)生變化,getline在前,就是第一行跳過(guò),打印第二行

getline在后,從第一行開(kāi)始,跳過(guò)第二行,打印的就是奇數(shù)

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

-v給變量賦值

BEGIN模式

對(duì)變量初始化。需要初始化變量的時(shí)候才會(huì)使用

格式

awk 'BEGIN{x=1};{x++};{print x}' test.txt

對(duì)行數(shù)計(jì)算Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

awk和數(shù)組結(jié)合使用

awk中如何定義數(shù)組

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

原理:索引的下標(biāo)是唯一的

a是遍歷了所有數(shù)組,把結(jié)果賦值給i,i在下面繼續(xù)

本章結(jié)束,

下面有幾個(gè)實(shí)例可供參考:

1.日志分割:

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

2.

free 內(nèi)存監(jiān)控

df -h 磁盤(pán)監(jiān)控

top 動(dòng)態(tài)進(jìn)程監(jiān)控

top -b -n 1靜態(tài)

監(jiān)控內(nèi)存的百分比(不超過(guò)90%,超過(guò)警報(bào)),磁盤(pán)(不超過(guò)80%),進(jìn)程(75%),寫(xiě)成函數(shù)庫(kù),以定時(shí)任務(wù)的方式每天早上十點(diǎn)整執(zhí)行,

函數(shù)庫(kù)調(diào)用實(shí)現(xiàn)Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器

Linux文本三劍客---awk,linux,運(yùn)維,服務(wù)器文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-728630.html

到了這里,關(guān)于Linux文本三劍客---awk的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux 文本處理三劍客:grep、sed 和 awk

    awk、grep、sed是linux操作文本的三大利器,合稱(chēng)文本三劍客,也是必須掌握的linux命令之一。三者的功能都是處理文本,但側(cè)重點(diǎn)各不相同,其中屬awk功能最強(qiáng)大,但也最復(fù)雜。grep更適合單純的查找或匹配文本,sed更適合編輯匹配到的文本,awk更適合格式化文本,對(duì)文本進(jìn)行較

    2024年01月17日
    瀏覽(97)
  • Linux:管道命令與文本處理三劍客(grep、sed、awk)

    Linux:管道命令與文本處理三劍客(grep、sed、awk)

    眾所周知,bash命令執(zhí)行的時(shí)候會(huì)輸出信息,但有時(shí)這些信息必須要經(jīng)過(guò)幾次處理之后才能得到我們想要的格式,此時(shí)應(yīng)該如何處置?這就牽涉到 管道命令(pipe) 了。管道命令使用的是 | 這個(gè)界定符號(hào)。另外,管道命令與連續(xù)執(zhí)行命令是不一樣的,這點(diǎn)下面我們會(huì)說(shuō)明。 我們先

    2023年04月18日
    瀏覽(36)
  • Linux 三劍客命令之 awk 詳解

    Linux 三劍客命令之 awk 詳解

    目錄 一、Awk 實(shí)戰(zhàn)講解 1.1 awk 的原理 1.2 BEGIN 和 END 模塊 1.3 運(yùn)算符 1.4 常用 awk 內(nèi)置變量 1.5 awk 正則 1.6 awk 常用字符串函數(shù) ????????awk 是一種很棒的語(yǔ)言,它適合文本處理和報(bào)表生成,其語(yǔ)法較為常見(jiàn),借鑒了某些語(yǔ)言的一些精華,如 C 語(yǔ)言等。在 linux 系統(tǒng)日常處理工作中

    2024年02月03日
    瀏覽(574)
  • 文本三劍客之 awk

    文本三劍客之 awk

    Linux/UNIX 系統(tǒng)中,awk 是一個(gè)功能強(qiáng)大的編輯工具。逐行讀取輸入文本 以空格作為分割符,多個(gè)空格他會(huì)自動(dòng)壓縮成一個(gè)空格 AWK信息的讀入也是逐行指定的匹配模式進(jìn)行查找,對(duì)符合條件的內(nèi)容進(jìn)行格式化輸出或者過(guò)濾處理. 1按照命令找指定的行? 2.找到的行 打印,操作 awk

    2024年02月08日
    瀏覽(24)
  • linux命令三劍客grep、sed、awk

    準(zhǔn)備 grep、sed、awk號(hào)稱(chēng)\\\"linux三劍客\\\",使用頻繁,功能強(qiáng)大,本文通過(guò)一個(gè)實(shí)例演示下基本用法。首先準(zhǔn)備一個(gè)文本文件,命名為text.txt,寫(xiě)入文件內(nèi)容: grep 首先,最簡(jiǎn)單的是grep。經(jīng)常用來(lái)過(guò)濾查看日志。對(duì)于grep需要知道如下幾個(gè)常用的命令選項(xiàng): -n: 額外輸出行號(hào)。例如過(guò)

    2024年02月05日
    瀏覽(99)
  • Linux中字符處理三劍客(grep sed awk )

    在 Linux 系統(tǒng)中,字符處理流程可以利用三個(gè)常用的工具來(lái)完成,三劍客的具體說(shuō)明如下: grep:grep 是一種強(qiáng)大的文本搜索工具,可以搜索文件內(nèi)容中包含指定文本的行,并打印出包含該文本的行。grep 命令通常用于搜索日志文件、配置文件等。 在Linux中,\\\"grep\\\"是一種文本搜索

    2024年02月08日
    瀏覽(117)
  • Linux三劍客grep、sed、awk(包括練習(xí)題)

    Linux grep (global regular expression) 命令用于查找文件里符合條件的字符串或正則表達(dá)式。 基本用法與常見(jiàn)的正則表達(dá)式 擴(kuò)展正則表達(dá)式實(shí)踐 此處使用grep -E 進(jìn)行實(shí)踐擴(kuò)展正則,egrep官網(wǎng)已經(jīng)棄用 注意:sed和awk使用單引號(hào),雙引號(hào)有特殊解釋 sed是Stream Editor(字符流編輯器)的縮寫(xiě)

    2024年02月11日
    瀏覽(92)
  • Shell腳本攻略:文本三劍客之a(chǎn)wk

    Shell腳本攻略:文本三劍客之a(chǎn)wk

    目錄 一、理論 1.awk原理 2.awk打印 ?3.awk條件判斷 4.awk數(shù)組與循環(huán) 5.awk函數(shù) 6.常用命令 二、實(shí)驗(yàn) 1.統(tǒng)計(jì)磁盤(pán)可用容量 2.統(tǒng)計(jì)/etc下文件總大小 3.CPU使用率 4.統(tǒng)計(jì)內(nèi)存 5.監(jiān)控硬盤(pán) (1)概念 awk由 Aho,Weinberger 和 Kernighan 創(chuàng)建的文本模式掃描和處理語(yǔ)言。 awk非常復(fù)雜,所以這不是一

    2024年02月08日
    瀏覽(86)
  • Linux三劍客(awk、sed、grep) 和 正則表達(dá)式

    Linux三劍客(awk、sed、grep) 和 正則表達(dá)式

    本文章適用于一定工作經(jīng)驗(yàn)(熟悉Linux基礎(chǔ))的同行,歡迎各位大佬批判指正。 上手三劍客(grep,sed,awk)之前,需要熟悉正則表達(dá)式, 正則表達(dá)式 ——事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來(lái)表達(dá)對(duì)字符串的

    2024年02月15日
    瀏覽(93)
  • linux文本三劍客

    linux文本三劍客

    過(guò)濾/查找 參數(shù) 用法 作用 -i grep -i STRING xxx.txt 從xxx.txt文件查找不區(qū)分大小寫(xiě)STRING -w grep -w STRING xxx.txt 精確匹配STRING -e grep -e STRING1 -e STRING2 xxx.txt 查找多個(gè)STRING行 -n grep -n STRING xxx.txt 查看STRING 在第幾行 -v grep -v STRING xxx.txt 輸出不包含STRING的行 -r grep -r STRING DIR/ 查找DIR目錄下哪

    2024年02月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包