亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

一個利用sed和awk處理文本的小栗子

2024-06-28 13:20:50
字體:
來源:轉載
供稿:網友
一個利用sed和awk處理文本的小栗子

  這兩天做《linux操作系統》課程的作業,碰到了一個題目,感覺很有意思,很考驗對awk掌握的熟練度,故特意拿來分享。

  首先說題目是這樣的,有這樣一段文本:

RECORD#這是多余的注釋行one#record_type students#這是多余的注釋行twoF sno 11111110000F name 王鐵蛋F gender 男F age 20F class 網絡工程01F region 湖北省武漢市.RECORD#這是多余的注釋行one#record_type scores#這是多余的注釋行twoF sno 1205110606F mathematics 92F english 88F chinese 86F history 79F politics 83

  然后要我們利用sed和awk,改啊改,改成這個樣子:

  

  

  這個怎么做呢,首先就是要去掉那個多余的注釋行,那個很好去掉,就是利用sed的正則表達式判斷就好了,以#開頭的,且后面跟著的不是r這個字符,那么就把這行刪除,具體命令如下:

  

  這樣就可以去掉多余的注釋行了。

  接下來我們就要進入主題了,利用awk來對文本進行處理。

  根據結果來看,可以看到這個題目中awk其實一共錄入了兩個record,也就是說我們的記錄分隔符RS不能再用回車了,得用原文本中的那個點,同時,每條記錄中的每個域應該就是record行到“.”行的每一行,所以我們的域分隔符也應該換一下,變成回車。所以awkBEGIN時執行命令應該是這兩條。

  

  接下來就得要分析,如何打印開頭的那個Record (1) “students”了,括號里面的那個數字應該是當前記錄號,而后面的那個students應該是取自record_type那一行,這個具體要怎么做呢,其實很簡單,如下:

  

  用for循環分別取出每個域,然后判斷,如果以#開頭,那么則說明是#record_type 那一行,我們就對這一行利用gsub函數進行處理。

  那個gsub函數是干嘛的呢,其實就是一個替換(substitute)函數,它利用第一個參數里的正則表達式來對第三個參數進行查找,將查找到的內容用第二個參數進行替換。具體到本栗子中就是,查找以#開頭空格結束這么一段內容,然后用空字符串進行替換。這樣其實就是做了一個刪除的功能。這樣處理之后,#record_type students就變成了students了,然后我們再來進行輸出就好了,需要注意的是,PRint函數類似于c語言的printf函數,可以直接對字符串進行連接,所以上面那個print第二個參數其實就是輸出了“students”。

  

  輸出了頭之后,我們就該輸出中間的內容了,我們可以很容易地發現一個規律就是所有內容都是以F開頭的,所以這里我們就可以這樣處理。

  

  首先判斷這個域的內容是不是以F開頭的,如果是,則進行處理。

  中間那個split函數的功能就是進行分割,對$i字符串的內容以第三個參數空格進行分割,然后將分割的結果存放到第二個參數所代表的數組中,然后再來將內容輸出就好了。

  整個for循環結束之后,再來打印一遍這條記錄結束了,這樣就能實現我們的功能了。

  最后再把代碼整體貼一遍,希望對各位有所幫助:

 1 #!/bin/bash 2 #History: 3 #   Michael     4月,27,2015 4  5 sed '/#[^r].*/d' recordmdA.txt | / 6  7 awk ' 8 BEGIN { 9     RS="."10     FS="/n"11 }12 {13     for(i=1;i<=NF;i++)14     {15         if($i ~ /#.*/)16         {17             gsub(/#.* /,"",$i)18             print "Record ("NR")","/""$i"/""19         }20         else if($i ~ /F.*/)21         {22             split($i,A," ")23             print "/t""/""A[2]"/"""=""/""A[3]"/""24         }25     }26     print "End of Record ("NR")"27 }28 '29 30 #  gsub函數的功能就是通過第一個參數的正則表達式在第三個參數中查找特定字符串,然后用第二個參數來替換這個字符串,具體到本例中就是將#record_type score字符串中空格前面的內容全部刪掉31 32 #  split函數的功能就是分割,通過第三個參數來將第一個參數的內容進行分割,并將分割的結果存放到第二個參數所代表的數組中

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日韩在线| 欧美在线视频免费播放| 性欧美xxxx视频在线观看| 国产伦精品免费视频| 成人免费直播live| 国内精品一区二区三区| 日韩在线观看免费全集电视剧网站| 精品亚洲男同gayvideo网站| 91精品国产91久久久久| 国产午夜精品全部视频播放| 日韩麻豆第一页| 久久大大胆人体| 精品中文字幕在线观看| 97视频com| 久久激情视频免费观看| 亚洲国产高清高潮精品美女| 色综合色综合久久综合频道88| 久久99精品久久久久久噜噜| 亚洲精品少妇网址| 亚洲精品国产精品国自产观看浪潮| 欧美性猛交99久久久久99按摩| 日产精品久久久一区二区福利| 亚洲精品视频久久| 亚洲国产高潮在线观看| 久久久久久香蕉网| 日韩激情av在线免费观看| 国内精品视频一区| 日韩欧美在线中文字幕| 2018日韩中文字幕| 欧美日韩在线视频一区| 久久精品国产一区二区电影| 欧美性生交大片免费| 亚洲成人在线视频播放| 亚洲免费一级电影| 亚洲一区二区三区成人在线视频精品| 久久好看免费视频| 日韩欧美极品在线观看| 日韩亚洲一区二区| 国产精品欧美激情| 日韩激情视频在线| 亚洲人成在线免费观看| 国产精品日韩欧美大师| 国产精品嫩草影院一区二区| 日本精品久久久| 福利二区91精品bt7086| 国自产精品手机在线观看视频| 日韩精品免费在线视频| 亚洲欧美综合v| 亚洲自拍偷拍色片视频| 亚洲一区999| 国产午夜精品全部视频播放| 欧美日韩精品二区| 日韩av不卡在线| 国产午夜精品全部视频在线播放| 美女久久久久久久久久久| 国产丝袜一区视频在线观看| 久久久最新网址| 久久男人的天堂| 久久久精品国产一区二区| www日韩欧美| 人妖精品videosex性欧美| 国产精品久久久久久久天堂| 亚洲免费伊人电影在线观看av| 国产成人精品日本亚洲| 久久人人爽人人| 欧美激情第99页| 亚洲人成在线免费观看| 亚洲国产成人在线视频| 亚洲欧洲国产精品| 91日本在线观看| 午夜精品国产精品大乳美女| 欧美在线中文字幕| 欧美日韩精品在线| 欧美电影免费观看电视剧大全| www.久久久久久.com| 欧美放荡办公室videos4k| 欧美日韩亚洲成人| 亚洲欧美日韩第一区| 欧洲日本亚洲国产区| 91亚洲精品在线观看| 欧美日韩日本国产| 成人免费网视频| 青草成人免费视频| 亚洲美女自拍视频| 另类少妇人与禽zozz0性伦| 国产亚洲精品美女久久久| 狠狠色香婷婷久久亚洲精品| 国产精品入口福利| 亚洲色图美腿丝袜| 亚洲精品一区久久久久久| 久久久久久噜噜噜久久久精品| 国产玖玖精品视频| 亚洲精品国产品国语在线| 狠狠久久五月精品中文字幕| 久久综合伊人77777| 亚洲伊人一本大道中文字幕| 亚洲成av人片在线观看香蕉| 久久综合伊人77777| 国产成人精品优优av| 中文国产成人精品| 日韩极品精品视频免费观看| 亚洲欧洲美洲在线综合| 欧美亚洲视频在线看网址| 国产精品视频网| 国产一区二区三区网站| 一本色道久久88亚洲综合88| 亚洲精品丝袜日韩| 91免费精品国偷自产在线| 亚洲淫片在线视频| yw.139尤物在线精品视频| 高清欧美电影在线| 欧美日韩亚洲网| 91精品久久久久久久久久久| 亚洲精品福利在线| 国产精品久久久久av| 亚洲欧美日韩国产成人| 一区二区三区视频免费在线观看| 2018国产精品视频| 1769国产精品| 亚洲视频第一页| 日韩成人中文字幕| 久久亚洲欧美日韩精品专区| 久久久精品久久久| 欧美精品在线第一页| 伊人久久综合97精品| 国产精品久久999| 91中文字幕在线观看| 中文综合在线观看| 亚洲黄在线观看| 国产一区二区三区直播精品电影| 亚洲护士老师的毛茸茸最新章节| 国产精品久久久久久久av电影| 欧洲s码亚洲m码精品一区| 国产91成人在在线播放| 欧美日韩亚洲视频一区| 亚洲欧美日韩国产精品| 亚洲精品国产电影| 精品国产视频在线| 国产精品va在线播放| 国产精品一区久久久| 91网站在线免费观看| 狠狠做深爱婷婷久久综合一区| 国产99久久久欧美黑人| 亚洲精品xxx| 久久成人精品一区二区三区| 国产精品igao视频| zzijzzij亚洲日本成熟少妇| 欧美大胆a视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲久久久久久久久久久| 国产精品电影久久久久电影网| 欧美国产一区二区三区| 欧美一区三区三区高中清蜜桃| 日韩电影在线观看永久视频免费网站| 欧美亚洲国产视频| 色噜噜亚洲精品中文字幕| 最近2019年好看中文字幕视频| 久久久精品999| 日韩成人av在线播放| 国产午夜一区二区| 国产精品色午夜在线观看| 国产伦精品免费视频| 在线播放日韩精品| 日本高清不卡的在线|