国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux使用awk文本處理工具實現多行合并的實例

2020-07-10 11:33:07
字體:
來源:轉載
供稿:網友

  在Linux系統中使用awk文本處理工具,有時需要將多行合并,這就需要用到awknext語句了,下面小編就給大家介紹下Linux中使用awk實現多行合并的方法,需要的朋友可以來了解下。

  awknext語句使用:在循環逐行匹配,如果遇到next,就會跳過當前行,直接忽略下面語句。而進行下一行匹配。

  代碼如下:

  text.txt 內容是:

  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也不會執行。 下一行開始,程序有開始判斷NR%2 值。這個時候記錄行號是:2 ,就會執行下面語句塊:‘print NR,$0’

  awk next使用實例:

  代碼如下:

  要求:

  文件: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

  分析:

  分析發現需要將包含有“web”行進行跳過,然后需要將內容與下面行合并為一行。

  [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

  上面就是Linux使用awk進行多行合并的方法介紹了,在文中使用next語句是十分方便的,在循環匹配中,如果遇到next,就會自動跳過,從而實現多行合并。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连云港市| 太仆寺旗| 长治县| 曲水县| 南阳市| 同心县| 安仁县| 公主岭市| 宽城| 潜江市| 津市市| 渭南市| 巫溪县| 壤塘县| 怀仁县| 盐津县| 获嘉县| 宁陵县| 河北省| 龙里县| 齐河县| 临海市| 宁安市| 吐鲁番市| 新野县| 正安县| 玉溪市| 甘泉县| 德格县| 镇雄县| 新兴县| 江孜县| 洪湖市| 龙川县| 凤阳县| 门源| 旌德县| 蓬安县| 皮山县| 通榆县| 济源市|