校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 總結Linux中用于文本處理的awk、sed、grep命令用法

總結Linux中用于文本處理的awk、sed、grep命令用法

熱門標簽:高德地圖標注技術 微信地圖標注在哪 辦理400電話怎么申請 如何在地圖標注多個位置 慶陽便宜外呼系統報價 滴滴洗衣店地圖標注 靈圖uu電子服務區地圖標注 大眾點評公寓式酒店地圖標注 天地圖標注線

awk
基礎概念
Awk把文件(或其他方式的輸入流, 如重定向輸入)看作一個記錄集, 把每一行看作一條記錄, 把每一行中以空格(或\t,或用戶自己指定的分隔符)分割的字符串看作一個字段.  這似乎把文件記錄看成數據庫. 但是, awk仍然以行為單位逐行處理. 本例子以下面的文件(命名為s.txt)內容做演示:

復制代碼
代碼如下:

zhangsan 1977 male computer 83
lisi 1989 male math 99
wanglijiang 1990 female chinese 78
xuliang 1977 male economic 89
xuxin 1986 female english 99
wangxuebing 1978 male math 89
lichang 1989 male math 99
wanglijiang 1990 female chinese 78
zhangsansan 1977 male computer 83
langxuebing 1978 male math 89
lisibao 1989 male math 99
xiaobao 1990 female chinese 78

一行中的5個字段分辨表示姓名, 出生年, 性別,科目,分數, 是一個很傳統很典型的報表文件.
Awk基本語法: awk ‘pattern1 {command1;command 2…; command 3}pattern2 { command …}’
pattern表示用來過濾記錄的模式, 可是是正則表達式, 關系運算表達式, 也可以什么也沒有(表示選中所有記錄);
每個pattern選中的行記錄會被花括號括起來的命令command操作一遍, command之間用;分割. 花括號里面可以什么也沒有, 則默認為print輸出整行記錄. Comamnd可以是輸出, 可以是算術運算, 邏輯運算, 循環控制等等.
先看幾個例子, 以建立對awk的命令直觀的了解.

復制代碼
代碼如下:

awk ‘/1990/’ s.txt #//直接輸出1990年出生的同學;
awk ‘/chinese/{print “語文”; print “語文”}’s.txt #// 對chinese的課程的行輸出兩行”語文 +”;
awk ‘20>1{print “Yes”}’ s.txt #//因為20>0,所以每行輸出Yes;
awk 'BEGIN{print "Result of the quiz:\n"}{print}END{print"---------------------------"}' s.txt

結果:
本例有3個花括號,分別對應3個模式, BEGIN和END是特殊模式,分別作用在記錄開始前和記錄結束后.
變量: 上面說到command可以是算術運算, 所及運算等, 則既然有運算, 就有常量變量, awk可以自定義變量(不需要提前聲明, 但最好在BEGIN里面給它初始化).  Awk也維護了一組程序變量:

變量

說明

$0

當前記錄;

$1, $2, … $n

當前記錄的字段

FILENAME

當前的文件名

FS

輸入字段的分隔符, 可通過-F修改. 如: 先通過sed把空格替換為|,然后管道輸送給awk:
sed 's/ /|/g' s.txt | awk -F '|' '/chinese/{print FILENAME, $1, $5}'

NF

當前記錄的字段數

NR

當前記錄編號

OFS

輸出字段分隔符

ORS

輸出記錄分隔符

RS

記錄分隔符, 默認為換行符


給一些例子來說明這些變量的用法:

復制代碼
代碼如下:

awk ‘$4==”chinese”{print NR, $1, $4, $5}’ s.txt #//第四個字段科目為chinese的記錄編號, 學生姓名, 科目和成績.
awk ‘$2~/1990/{print $1}’ s.txt #//找出1990年出生的學生姓名, ~表示匹配正則表達式
awk ‘$2!~/1990/{print $1}’ s.txt #//找出不是1990年出生的學生姓名, !~表示不匹配正則表達式
awk ‘$2>”1985”{print $1, $2}’ s.txt #//找出大于1985年出生的學生姓名,年齡
awk ‘END{print “total: ” NR ”\n----------------” }’ s.txt
awk ‘BEGIN{goodChinese=0; goodMath=0}($4==”chinese”||$5>90){goodChinese++}END{print“”}

sed
sed   '2,5d' file 顯示文件file,除去2-5行,但行數超過文件實際行數時不會報錯。
sed '/10[1-4]/d'     file 顯示文件file,除去包含101-104的行。
sed '2,$d' file 顯示文件,只顯示第一行。sed '2,$!d' file則只顯示除第一行外的其它行。
sed '/^ *$/d file 刪除文件中的空行。
sed -n '/10[1-4]/p' file
只顯示文件file中包含101-104的行。(n和p必須同時使用,否則只有p時顯示全部文件并多顯示一次找到的行)
sed -n '5p' file 只顯示文件的第5行
sed 's/moding/moden/g' file 將moding替換為moden
sed -n 's/^west/north/p' file 將west開頭的行替換為north并顯示出來。
sed 's/[0-9][0-9][0-9]$/.5/' file 將file文件中以3個數字結尾的行替換為原數字加".5",代表搜索到的字符串。
sed 's/moding/\1en/g file 將mod做為模式1封裝在括號里,然后替換。
sed 's/...$//' file 刪除每一行的最后三個字符。
sed 's/^...//' file 刪除每一行的頭三個字符。
sed 's#moding#moden#g'   file將moding替換為moden,s后面的#代表搜索串和替換串之間的分界符。
sed -n '/101/,/105/p' file 顯示從101的匹配行到105的匹配行。如果只找到101的匹配行,則從101的匹配行到文件末。
sed -n '2,/999/p' file 顯示從第2行到匹配行。
sed'/101/,/105/s/$/  20050119/' file將從101的匹配行到105的匹配行的行末增加"       20050119"內容。
sed -e '1,3d' -e 's/moding/moden/g'file 先刪除文件的1-3行,再進行替換。
sed -e '/^#/!d'         file 顯示文件以#開頭的行。
sed '/101/r newfile' file 在每個匹配行增加文件newfile的內容
sed '/101/w newfile'    file 把匹配行寫入newfile。
sed '/101/a new text' file 在匹配行后增加一新行。
sed '/101/i' new text' file 在匹配行前增加一新行。
sed '/101/c new text' file 用新行替換匹配行。
sed 'y/abcd/ABCD/' file 將a、b、c、d分別替換為ABCD。
sed '5q' file 顯示到第5行時退出。
sed '/101/{ n; s/moding/moden/g; }' file在文件中找到匹配行的后一行(n)再進行替換。
sed '/101/{ s/moding/moden/g; q; }' file在文件中找到第一個匹配行后進行替換后再退出。
sed -e '/101/{ h; d; }' -e '/104/{ G; }'file 在文件中找到與101匹配行后先存在一個緩存中,再放在與104匹配行后。
sed -e '/101/{ h; d; }' -e '/104/{ g; }'file 在文件中找到與101匹配行后先存在一個緩存中,再替代104的匹配行。
sed -e '/101/h' -e '$G' file 將最后一個匹配行放在文件末。
sed -e '/101/h' -e '$g' file 將最后一個匹配行替換文件末行。
sed -e '/101/h' -e '/104/x' file 在文件中找到與101匹配行后先存在一個緩存中,再與104的匹配行進行互換。
echo –ltr 1.txt | sed‘s/^.* //’ 找出文件名

grep
常用的grep選項
-c 只輸出匹配行的計數。// 這條有時候很有用, 不需要再 | wc -l
-i 不區分大小寫(只適用于單字符)。
-h 查詢多文件時不顯示文件名。
-l 查詢多文件時只輸出包含匹配字符的文件名。
-n 顯示匹配行及行號。
-s 不顯示不存在或無匹配文本的錯誤信息。
-v 顯示不包含匹配文本的所有行。
例子

復制代碼
代碼如下:
grep -v "Sort" tab2
     顯示不包含匹配文本的所有行

復制代碼
代碼如下:
grep -n "Sort" tab2
     顯示匹配行及行號

復制代碼
代碼如下:
grep -c "Sort" tab2
     只輸出匹配行的計數
精確匹配:
復制代碼
代碼如下:
grep "01">" tab2


復制代碼
代碼如下:
grep -in "code" tab2
    忽略大小寫
多次過濾

復制代碼
代碼如下:
grep -in "code" tab2 | grep "02"

補充說明,grep 家族還包括fgrep和egrep。fgrep是fix grep, 允許查找字符串而不是一個模式,運算速度快,適合于從大量數據中進行檢索;egrep是擴展grep,支持基本及擴展的正則表達式,可用()及|等,但不支持q模式范圍的應用及與之相對應的一些更加規范的模式。

復制代碼
代碼如下:
echo aAA123bbb |egrep '[0-9]*'


復制代碼
代碼如下:
echo AAA123bbb | egrep -i '^a'

標簽:臺州 哈密 玉樹 九江 海東 昌都 孝感 優質穩定

巨人網絡通訊聲明:本文標題《總結Linux中用于文本處理的awk、sed、grep命令用法》,本文關鍵詞  總結,Linux,中,用于,文本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《總結Linux中用于文本處理的awk、sed、grep命令用法》相關的同類信息!
  • 本頁收集關于總結Linux中用于文本處理的awk、sed、grep命令用法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    97久久久精品综合88久久| 美女mm1313爽爽久久久蜜臀| 亚洲主播在线观看| 欧美日韩不卡在线| 丝袜美腿高跟呻吟高潮一区| 日韩免费视频一区| 粉嫩在线一区二区三区视频| 一区二区三区自拍| 精品久久久三级丝袜| 成人福利电影精品一区二区在线观看| 日韩一区在线看| 9191国产精品| 成人动漫一区二区| 男女男精品网站| 中文字幕一区av| 日韩欧美激情四射| av成人免费在线观看| 日韩激情视频网站| 中文字幕一区二区三区不卡在线| 在线视频综合导航| 精品一区二区国语对白| 亚洲久本草在线中文字幕| 日韩亚洲欧美在线观看| 不卡的av中国片| 麻豆视频一区二区| 亚洲一区二区精品视频| 国产日韩视频一区二区三区| 欧美另类变人与禽xxxxx| 不卡av在线网| 国产美女一区二区三区| 婷婷国产在线综合| 一区二区三区在线播放| 国产三级精品三级在线专区| 欧美精品xxxxbbbb| 91国偷自产一区二区开放时间 | 日韩视频中午一区| 91成人看片片| caoporn国产精品| 国产精品一区久久久久| 久久精品久久久精品美女| 亚洲国产aⅴ天堂久久| 国产精品国产三级国产有无不卡| 日韩午夜中文字幕| 91精品国产福利在线观看| 91国内精品野花午夜精品| 99国产欧美另类久久久精品| 国产99精品在线观看| 国产在线不卡视频| 国产乱人伦偷精品视频免下载| 久久草av在线| 国产在线看一区| 国内精品不卡在线| 国产精品18久久久久久久久 | 韩国v欧美v日本v亚洲v| 青青草国产精品亚洲专区无| 日本少妇一区二区| 美女www一区二区| 精品综合久久久久久8888| 蜜桃视频在线一区| 精品一区二区在线免费观看| 国内一区二区视频| 成人免费视频免费观看| 99在线热播精品免费| 91免费观看在线| 欧美四级电影网| 欧美一区二区三区在线看| 日韩欧美在线影院| 国产三级精品视频| 亚洲最大成人综合| 久久精工是国产品牌吗| 国产91精品欧美| 日本大香伊一区二区三区| 欧美日韩你懂得| 亚洲精品一区在线观看| 欧美激情一区二区| 亚洲国产视频一区二区| 美女高潮久久久| 99久久亚洲一区二区三区青草| 91亚洲永久精品| 欧美一区二区三区视频在线| 精品sm捆绑视频| 亚洲精品你懂的| 寂寞少妇一区二区三区| 97久久人人超碰| 欧美一区二区三区色| 国产精品欧美综合在线| 日韩精品国产精品| 99久久综合99久久综合网站| 欧美三级中文字幕在线观看| 久久综合色天天久久综合图片| 成人免费在线播放视频| 蜜桃一区二区三区在线观看| 91在线码无精品| 精品国产一区二区国模嫣然| 一区二区三区四区蜜桃| 国产成人在线视频网站| 欧美人体做爰大胆视频| 国产精品伦理在线| 美女一区二区三区| 欧美在线视频日韩| 欧美经典一区二区| 蜜臀久久99精品久久久久久9 | 欧美日韩国产美| 一色屋精品亚洲香蕉网站| 日韩经典中文字幕一区| 色欧美片视频在线观看| 欧美激情一区二区三区不卡 | 国产精品美女一区二区三区| 日本欧美久久久久免费播放网| www.欧美日韩国产在线| 久久综合九色综合久久久精品综合 | 2022国产精品视频| 亚洲成av人片| 91国产免费观看| 国产精品久久久久久久久久久免费看 | 国产一区二区三区久久久| 欧美性大战久久久| 日韩一区在线播放| 菠萝蜜视频在线观看一区| 国产日韩精品一区| 国产成人精品免费在线| 久久免费精品国产久精品久久久久| 天堂va蜜桃一区二区三区漫画版| 在线视频观看一区| 亚洲欧美日韩中文播放| 成人激情文学综合网| ...xxx性欧美| 色综合欧美在线视频区| 亚洲精品网站在线观看| 色妹子一区二区| 夜夜嗨av一区二区三区网页 | 麻豆精品国产传媒mv男同| 欧美精品粉嫩高潮一区二区| 婷婷综合另类小说色区| 欧美高清精品3d| 欧美aaaaa成人免费观看视频| 欧美日韩黄色影视| 捆绑调教美女网站视频一区| 欧美成人精品二区三区99精品| 毛片不卡一区二区| 日本一区二区三区国色天香 | 91在线云播放| 亚洲夂夂婷婷色拍ww47| 欧美一区二区三区公司| 国产精品一区二区久激情瑜伽| 欧美激情一区二区三区| av爱爱亚洲一区| 亚洲成人av电影在线| 精品国产一区二区三区不卡| 成人手机在线视频| 亚洲一区二区三区四区五区黄| 欧美一区二区三区在线| 国产乱人伦精品一区二区在线观看 | 欧美一区二区视频观看视频| 狠狠色狠狠色合久久伊人| 国产精品人人做人人爽人人添| 色噜噜偷拍精品综合在线| 理论电影国产精品| 国产精品国产a| 日韩一区二区在线观看视频播放| 国产传媒日韩欧美成人| 亚洲一区二区欧美日韩| 国产亚洲一区字幕| 欧美精品一级二级三级| 丁香网亚洲国际| 日韩激情一区二区| 国产精品毛片无遮挡高清| 欧美精品在线观看播放| thepron国产精品| 麻豆国产精品一区二区三区 | 欧美日韩成人一区二区| 成人91在线观看| 久久成人18免费观看| 亚洲午夜激情av| 国产精品久久久久久福利一牛影视 | 欧美在线观看一区| 国产乱码一区二区三区| 五月天亚洲精品| |精品福利一区二区三区| 精品处破学生在线二十三| 欧美日韩国产一级二级| av中文字幕亚洲| 国产精品亚洲第一区在线暖暖韩国 | 国产99精品国产| 久久99久久精品欧美| 亚洲综合男人的天堂| 国产精品婷婷午夜在线观看| 欧美一区二区黄| 欧美日韩国产片| 91久久香蕉国产日韩欧美9色| 成人免费av在线| 国产一区二区免费视频| 蜜臀av性久久久久蜜臀aⅴ| 五月婷婷激情综合| 性做久久久久久久免费看| 亚洲综合免费观看高清在线观看| 亚洲色图在线播放| 椎名由奈av一区二区三区| 国产日韩亚洲欧美综合| 国产校园另类小说区|