溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

awk多行合并的示例分析

發(fā)布時(shí)間:2021-11-02 10:42:14 來源:億速云 閱讀:92 作者:柒染 欄目:系統(tǒng)運(yùn)維

今天就跟大家聊聊有關(guān)awk多行合并的示例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

awknext語句使用:在循環(huán)逐行匹配,如果遇到next,就會跳過當(dāng)前行,直接忽略下面語句。而進(jìn)行下一行匹配。

代碼如下:


text.txt 內(nèi)容是:
a
b
c
d
e

[chengmo@centos5 shell]$ awk 'NR%2==1{next}{print NR,$0;}' text.txt    
2 b
4 d
當(dāng)記錄行號除以2余 1,就跳過當(dāng)前行。下面的print NR,$0也不會執(zhí)行。 下一行開始,程序有開始判斷NR%2 值。這個(gè)時(shí)候記錄行號是:2 ,就會執(zhí)行下面語句塊:'print NR,$0'

awk next使用實(shí)例:

代碼如下:


要求:
文件:text.txt 格式:
web01[192.168.2.100]
httpd            ok
tomcat               ok
sendmail               ok
web02[192.168.2.101]
httpd            ok
postfix               ok
web03[192.168.2.102]
mysqld            ok
httpd               ok

需要通過awk將輸出格式變成:
web01[192.168.2.100]:   httpd            ok
web01[192.168.2.100]:   tomcat               ok
web01[192.168.2.100]:   sendmail               ok
web02[192.168.2.101]:   httpd            ok
web02[192.168.2.101]:   postfix               ok
web03[192.168.2.102]:   mysqld            ok
web03[192.168.2.102]:   httpd               ok

分析:
分析發(fā)現(xiàn)需要將包含有“web”行進(jìn)行跳過,然后需要將內(nèi)容與下面行合并為一行。
[chengmo@centos5 shell]$ awk '/^web/{T=$0;next;}{print T":\t"$0;}' test.txt
web01[192.168.2.100]:   httpd            ok
web01[192.168.2.100]:   tomcat               ok
web01[192.168.2.100]:   sendmail               ok
web02[192.168.2.101]:   httpd            ok
web02[192.168.2.101]:   postfix               ok
web03[192.168.2.102]:   mysqld            ok
web03[192.168.2.102]:   httpd               ok

next在多行合并,以及選擇性輸出方面,非常方便。大家在使用時(shí)候不妨試試。

看完上述內(nèi)容,你們對awk多行合并的示例分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

awk
AI