Shell腳本擴(kuò)展
創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、寶興網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為寶興等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。一 正確表達(dá)式
正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。
1. 支持的命令:
grep、vim、find、awk、sed等。
1、.代表任意單個(gè)字符, 如:/l..e/與包含一個(gè)l,后跟兩個(gè)字符,然后跟一個(gè)e的行相匹配
檢索wang.txt文件中匹配s字符的。
2、^代表行的開始。 ^love如:與所有l(wèi)ove開頭的行匹配
檢索wang.txt文件中以N開頭的。
3、$代表行的結(jié)束。love$如:與所有l(wèi)ove結(jié)尾的行匹配
那么‘^$’就表示空行
通配符
檢索wang.txt文件中匹配小寫字母a到z之間的。
注意:
[abc]表示匹配單個(gè)字符a或b或c
[123]表示匹配單個(gè)字符1或2或3
[A-Z]表示匹配大寫字母A-Z之間一個(gè)
[^a]表示取反,匹配除去小寫字母a的。
5、* 用于修飾前導(dǎo)字符,表示前導(dǎo)字符出現(xiàn)0次或任意多次
檢索wang.txt文件中出現(xiàn)0次或多次T的
6、\? 用于修飾前導(dǎo)字符,表示前導(dǎo)字符出現(xiàn)0或1次
7、\+ 用于修飾前導(dǎo)字符,表示前導(dǎo)字符出現(xiàn)1或多次
8、\{n,m\} 用于修飾前導(dǎo)字符,表示前導(dǎo)字符出現(xiàn)n至m次 (n和m都是整數(shù),且n 表示前導(dǎo)字符出現(xiàn)n至m次; n/m為整數(shù),并且m>n; 其他形式: \{n\}連續(xù)的n個(gè)前導(dǎo)字符; \{n,\}連續(xù)的至少n個(gè)前導(dǎo)字符; 檢索wang.txt文件中出現(xiàn)2至4個(gè)n的 9、\ 用于轉(zhuǎn)義緊跟其后的單個(gè)特殊字符,使該特殊字符成為普通字符 檢索wang.txt文件中含有.的。 10、|表示或 如: a|b|c匹配a或b或c。如:grep|sed匹配grep或sed 檢索wang.txt文件中含有a或b的。 11、(),將部分內(nèi)容合成一個(gè)單位組,比如 要搜索 glad或 good 可以如下 'g(la|oo)d' 二、grep命令的用法 參數(shù): 1. -A NUM,--after-context=NUM 除了列出符合行之外,并且列出后NUM行。 列出chai.txt文件中Tom行與后倆行 2. -B NUM,--before-context=NUM 與 -A NUM相對(duì),但這此參數(shù)是顯示除符合行之外并顯示在它之前的NUM行。 列出chai.txt文件中Tom行與前倆行。 3、 -C [NUM], -NUM, --context[=NUM] 列出符合行之外并列出上下各NUM行,默認(rèn)值是2。 列出chai.txt文件中Tom行與前后倆行。 4、 -c, --count 不顯示符合樣式行,只顯示符合的總行數(shù)。若再加上-v,--invert-match,參數(shù)顯示不符合的總行數(shù) 列出chai.txt文件中含有Tom的行數(shù); 列出chai.txt文件中不含有Tom的行數(shù)。 5、-i,--ignore-case忽略大小寫差別 列出chai.txt文件中含有tom(大小寫)的行。 6、-n,--line-number在匹配的行前面打印行號(hào) 列出chai.txt文件中含有tom(大小寫)的行,并且打印出行號(hào)。 7、-v,--revert-match 反檢索,只顯示不匹配的行 列出chai.txt文件中不含有tom的行。 8、精確匹配: 例如在抽取字符串“ 48”,返回結(jié)果包含諸如484和483等包含“48”的其他字符串,實(shí)際上應(yīng)精確抽取只包含48的各行。 精確列出chai.txt文件中含有30的行。 9、-s 不顯示不存在或無(wú)匹配文本的錯(cuò)誤信 xin.txt文件不存在,檢索時(shí)候提示搜索不到的錯(cuò)誤信息, 如果不要錯(cuò)誤信息提示,則加上-s。 三、sed命令的用法 1sed是一種在線編輯器,它一次處理一行內(nèi)容。處理時(shí),把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區(qū)中的內(nèi)容,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕。 2把緩沖區(qū)的內(nèi)容送往屏幕。接著處理下一行,這樣不斷重復(fù),直到文件末尾。 3文件內(nèi)容并沒(méi)有改變,除非你使用重定向存儲(chǔ)輸出。 1.替換: s命令 把chai.txt中The替換成chai,輸出到aaa.txt文件中。 sed 替換命令 /../../分隔符(可以用其他符合代替) The 搜索的字符串 chai 替換的字符串 <chai.txt> 搜索的文件 aaa.txt 輸出到的文件 1.2用 &表示匹配的字符串 有時(shí)可能會(huì)想在匹配到的字符串周圍或附近加上一些字符 . sed默認(rèn)只替換搜索字符串的第一次出現(xiàn) ,利用 /g可以替換搜索字符串所有 如果需要對(duì)同一文件或行作多次修改,可以使用 "-e"選項(xiàng) 3.刪除行:d命令 從某文件中刪除包含 "how"的所有行 將passwd內(nèi)容顯示并打印行號(hào),同時(shí)刪除2到5行。 nl命令在linux系統(tǒng)中用來(lái)計(jì)算文件中行號(hào)。nl可以將輸出的文件內(nèi)容自動(dòng)的加上行號(hào)。 4.增加行:a命令(在指定的行后新增)或i命令(在指定的行前新增) a的后面可以接字符串,而這些字符串會(huì)在新的一行出現(xiàn) 在/etc/passwd的第二行后增加“XXXXX”字樣的新行 將passwd內(nèi)容顯示并打印行號(hào),同時(shí)在第二行后新增hello。 將passwd內(nèi)容顯示并打印行號(hào),同時(shí)在第二行前新增hello。 如果要同時(shí)新增多行,則每行之間要用反斜杠\來(lái)進(jìn)行新行的添加 5、取代行:c命令 c的后面可以接字符串,這些字符串可以取代n1,n2之間的行 取代行 將passwd內(nèi)容顯示并打印行號(hào),同時(shí)取代2到5行間內(nèi)容。 6、打?。簆命令 sed '/north/p' datafile默認(rèn)輸出所有行,找到north的行重復(fù)打印 僅列出passwd文件中的第5到7行內(nèi)容。 sed的-i選項(xiàng)可以直接修改文件中的內(nèi)容 6.?dāng)U展: 調(diào)用sed有三種方式: l 在命令行鍵入命令 l 將sed命令插入腳本文件,然后調(diào)用sed l 將sed命令插入腳本文件,并使sed腳本可執(zhí)行。 A、 使用sed命令行格式為: sed[選項(xiàng)]sed命令 輸入文件。 記住在命令行使用sed命令時(shí),實(shí)際命令要加單引號(hào)。sed也允許加雙引號(hào)。 B、使用sed腳本文件,格式為: sed[選項(xiàng)]-f sed腳本文件 輸入文件 C、要使用第一行具有sed命令解釋器的sed腳本文件,其格式為: sed腳本文件 [選項(xiàng)] 輸入文件 第一行是sed命令解釋行。腳本在這一行查找sed以運(yùn)行命令,這里定位在/bin。 第二行以/company/開始,這是附加操作起始位置。a\通知sed 是一個(gè)附加操作,首先應(yīng)插入二個(gè)新行。 第三、四行是附加操作要加入到拷貝的實(shí)際文本。 另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
1.1基本用法
如: sed 's/abc/(abc)/'
當(dāng)前文章:shell正則表達(dá)式-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/dodjij.html