sed&awk基本使用方法
sed 工具簡(jiǎn)介
在了解了一些正規(guī)表示法的基礎(chǔ)應(yīng)用之后,再來(lái)呢?呵呵~兩個(gè)東西可以玩一玩的,那就是 sed 跟 awk 了!
這兩個(gè)家伙可是相當(dāng)?shù)挠杏玫陌。∨e例來(lái)說(shuō),鳥(niǎo)哥寫(xiě)的 logfile.sh 分析登錄文件的小程序,絕大部分分析關(guān)鍵詞的取用、統(tǒng)計(jì)等等,就是用這兩個(gè)寶貝蛋來(lái)幫我完成的! 那么你說(shuō),要不要玩一玩啊?! ^_^
我們先來(lái)談一談 sed 好了,基本上, sed 可以分析 Standard Input (STDIN) 的數(shù)據(jù),
然后將數(shù)據(jù)經(jīng)過(guò)處理后,再將他輸出到 standrad out (STDOUT) 的一個(gè)工具。
至于處理呢?可以進(jìn)行取代、刪除、新增、擷取特定行等等的功能呢!很不錯(cuò)吧~ 我們先來(lái)了解一下 sed 的用法,再來(lái)聊他的用途好了!
[root@linux ~]# sed [-nefri] [動(dòng)作]
參數(shù):
-n :使用安靜(silent)模式。在一般 sed 的用法中,所有來(lái)自 STDIN
的數(shù)據(jù)一般都會(huì)被列出到屏幕上。但如果加上 -n 參數(shù)后,則只有經(jīng)過(guò)
sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來(lái)。
-e :直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯;
-f :直接將 sed 的動(dòng)作寫(xiě)在一個(gè)檔案內(nèi), -f filename 則可以執(zhí)行 filename 內(nèi)的
sed 動(dòng)作;
-r :sed 的動(dòng)作支持的是延伸型正規(guī)表示法的語(yǔ)法。(預(yù)設(shè)是基礎(chǔ)正規(guī)表示法語(yǔ)法)
-i :直接修改讀取的檔案內(nèi)容,而不是由屏幕輸出。
動(dòng)作說(shuō)明: [n1[,n2]]function
n1, n2 :不見(jiàn)得會(huì)存在,一般代表『選擇進(jìn)行動(dòng)作的行數(shù)』,舉例來(lái)說(shuō),如果我的動(dòng)作
是需要在 10 到 20 行之間進(jìn)行的,則『 10,20[動(dòng)作行為] 』
function 有底下這些咚咚:
a :新增, a 的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(目前的下一行)~
c :取代, c 的后面可以接字符串,這些字符串可以取代 n1,n2 之間的行!
d :刪除,因?yàn)槭莿h除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn)(目前的上一行);
p :打印,亦即將某個(gè)選擇的數(shù)據(jù)印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)作~
s :取代,可以直接進(jìn)行取代的工作哩!通常這個(gè) s 的動(dòng)作可以搭配
正規(guī)表示法!例如 1,20s/old/new/g 就是啦!
范例:
范例一:將 /etc/passwd 的內(nèi)容列出,并且我需要打印行號(hào),同時(shí),請(qǐng)將第 2~5 行刪除!
[root@linux ~]# nl /etc/passwd |sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
.....(后面省略).....
# 看到了吧?因?yàn)?2-5 行給他刪除了,所以顯示的數(shù)據(jù)中,就沒(méi)有 2-5 行 主站蜘蛛池模板: 上林县| 恭城| 唐山市| 江阴市| 华蓥市| 龙胜| 砀山县| 东辽县| 林芝县| 丰城市| 宜兰县| 富阳市| 增城市| 阜城县| 渝北区| 万源市| 卢氏县| 汝南县| 信宜市| 云梦县| 湖北省| 阜康市| 宜宾县| 余姚市| 上蔡县| 体育| 襄城县| 奇台县| 阿尔山市| 祥云县| 高台县| 孙吴县| 滨州市| 彰化县| 微博| 湟中县| 无棣县| 苏尼特左旗| 娱乐| 休宁县| 会理县|