awk 多行合并(next 使用介紹) (常見應(yīng)用4)
發(fā)布日期:2022-03-19 13:15 | 文章來源:腳本之家
awknext語句使用:在循環(huán)逐行匹配,如果遇到next,就會跳過當前行,直接忽略下面語句。而進行下一行匹配。
復制代碼
代碼如下: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
當記錄行號除以2余 1,就跳過當前行。下面的print NR,$0也不會執(zhí)行。 下一行開始,程序有開始判斷NR%2 值。這個時候記錄行號是:2 ,就會執(zhí)行下面語句塊:'print NR,$0'
awk next使用實例:
復制代碼
代碼如下:要求:
文件:text.txt 格式:
web01[192.168.2.100]
httpdok
tomcatok
sendmailok
web02[192.168.2.101]
httpdok
postfixok
web03[192.168.2.102]
mysqldok
httpdok
需要通過awk將輸出格式變成:
web01[192.168.2.100]:httpdok
web01[192.168.2.100]:tomcatok
web01[192.168.2.100]:sendmailok
web02[192.168.2.101]:httpdok
web02[192.168.2.101]:postfixok
web03[192.168.2.102]:mysqldok
web03[192.168.2.102]:httpdok
分析:
分析發(fā)現(xiàn)需要將包含有“web”行進行跳過,然后需要將內(nèi)容與下面行合并為一行。
[chengmo@centos5 shell]$ awk '/^web/{T=$0;next;}{print T":\t"$0;}' test.txt
web01[192.168.2.100]:httpdok
web01[192.168.2.100]:tomcatok
web01[192.168.2.100]:sendmailok
web02[192.168.2.101]:httpdok
web02[192.168.2.101]:postfixok
web03[192.168.2.102]:mysqldok
web03[192.168.2.102]:httpdok
next在多行合并,以及選擇性輸出方面,非常方便。大家在使用時候不妨試試。
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信