這篇文章主要介紹了sed有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設(shè),為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計開發(fā)服務,多年建網(wǎng)站服務經(jīng)驗,各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。
管道命令sed是一個很好的文本處理工具,主要以行為單位進行處理,可以將數(shù)據(jù)進行替換、刪除、新增、選取等。sed可以處理標準輸入內(nèi)容或者文件,可以輸出標準輸出或輸出到文件。sed的一般使用規(guī)則如下:
sed -nefri '動作命令' 文件或輸入
參數(shù)設(shè)置:
-n:使用安靜(silent)模式。在一般sed的用法中,所有來自STDIN的資料一般都會被列出到屏幕上。但如果加上-n參數(shù)后,則只有經(jīng)過sed特殊處理的那一行(或者動作)才會被列出來。
-e:直接在命令行模式上進行sed的動作編輯;
-f:直接將sed的動作命令寫在一個檔案內(nèi),-ffilename則可以執(zhí)行filename內(nèi)的sed動作;
-r:sed動作支持的是拓展正規(guī)表示法的語法(默認基礎(chǔ)正規(guī)表示法語法)。
-i :直接修改讀取的檔案內(nèi)容,而不是由屏幕輸出。動作命令:
a:新增,a后可以接字串,這些字串會在新一行出現(xiàn)(目前的下一行);
c:替換,c的后面可以接字串,這些字串可以取代n1、n2之間的行!
d:刪除,因為是刪除啊,所以d 后面通常不接任何東西;
g:全局,表示動作命令在行內(nèi)全局執(zhí)行,也即如果行內(nèi)有多個關(guān)鍵字,全部刪除或替換;
i:新增,i后可以接字串,這些字串會在新一行出現(xiàn)(目前的上一行);
p:打印,亦即將某個選擇的資料印出,通常p會與參數(shù)sed-n一起運行;
s :替換,可以直接進行替換的工作,通常 s 的動作可以搭配正則表達式。⑴新增與刪除功能
sed可以以行為單位按照行號進行刪除,例如列出文件內(nèi)容打印行號并刪除第2-5行:
可以看到標準輸出的內(nèi)容少了2-5行,最后一行可以使用“$”代指。這里省略了-e,也即默認就是在命令行模式,還可以根據(jù)關(guān)鍵字進行刪除,例如刪除含有“CHEN”的行:
但是這時文件的內(nèi)容并沒有被更改,如要是刪除原文件的內(nèi)容并保存,可以使用-i參數(shù)直接對文件執(zhí)行命令:
注意這時候雖然前三行被刪去,行號仍是第一行開始,因為這里 nl 處理的是文件而不是標準輸出內(nèi)容。接下來我們新增新行內(nèi)容,示例如下:這時很明顯的看出兩個新增命令a和i的區(qū)別??梢允褂谩癨+回車”來增添多行內(nèi)容,示例如下:
⑵替換與顯示功能
sed中的動作命令p可以根據(jù)行號顯示內(nèi)容,例如選擇顯示文件中的第5-7行內(nèi)容:
sed中的動作命令c可以進行整行內(nèi)容替換,例如將文件第2-4行重復內(nèi)容替換為“reduplicates”:
sed中的動作命令s可以以行為單位查找關(guān)鍵字并進行替換,其中要查找的關(guān)鍵字可以搭配正則表達式進行,例如將文件中所有的“:”替換為“;”:
其中g(shù)表示全局,也即每一行進行全部替換,若不加g則只替換找到的第一個關(guān)鍵字:
sed還可以直接處理文件,在多文庫數(shù)據(jù)處理時,遇到重復barcode的情況,常需要進行barcode替換,如下所示:
上面的例子中第一條表示將替換結(jié)果保存為新的文件,而后面兩條則進行原文件直接修改。其中 “^” 表示只替換行首出現(xiàn)的關(guān)鍵字。感謝你能夠認真閱讀完這篇文章,希望小編分享的“sed有什么用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!