您好,登錄后才能下訂單哦!
這篇文章主要介紹了sed有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
管道命令sed是一個很好的文本處理工具,主要以行為單位進(jìn)行處理,可以將數(shù)據(jù)進(jìn)行替換、刪除、新增、選取等。sed可以處理標(biāo)準(zhǔn)輸入內(nèi)容或者文件,可以輸出標(biāo)準(zhǔn)輸出或輸出到文件。sed的一般使用規(guī)則如下:
sed -nefri '動作命令' 文件或輸入
參數(shù)設(shè)置:
-n:使用安靜(silent)模式。在一般sed的用法中,所有來自STDIN的資料一般都會被列出到屏幕上。但如果加上-n參數(shù)后,則只有經(jīng)過sed特殊處理的那一行(或者動作)才會被列出來。
-e:直接在命令行模式上進(jìn)行sed的動作編輯;
-f:直接將sed的動作命令寫在一個檔案內(nèi),-ffilename則可以執(zhí)行filename內(nèi)的sed動作;
-r:sed動作支持的是拓展正規(guī)表示法的語法(默認(rèn)基礎(chǔ)正規(guī)表示法語法)。
動作命令:
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一起運行;
⑴新增與刪除功能
sed可以以行為單位按照行號進(jìn)行刪除,例如列出文件內(nèi)容打印行號并刪除第2-5行:
可以看到標(biāo)準(zhǔn)輸出的內(nèi)容少了2-5行,最后一行可以使用“$”代指。這里省略了-e,也即默認(rèn)就是在命令行模式,還可以根據(jù)關(guān)鍵字進(jìn)行刪除,例如刪除含有“CHEN”的行:
但是這時文件的內(nèi)容并沒有被更改,如要是刪除原文件的內(nèi)容并保存,可以使用-i參數(shù)直接對文件執(zhí)行命令:
這時很明顯的看出兩個新增命令a和i的區(qū)別??梢允褂谩癨+回車”來增添多行內(nèi)容,示例如下:
⑵替換與顯示功能
sed中的動作命令p可以根據(jù)行號顯示內(nèi)容,例如選擇顯示文件中的第5-7行內(nèi)容:
sed中的動作命令c可以進(jìn)行整行內(nèi)容替換,例如將文件第2-4行重復(fù)內(nèi)容替換為“reduplicates”:
sed中的動作命令s可以以行為單位查找關(guān)鍵字并進(jìn)行替換,其中要查找的關(guān)鍵字可以搭配正則表達(dá)式進(jìn)行,例如將文件中所有的“:”替換為“;”:
其中g(shù)表示全局,也即每一行進(jìn)行全部替換,若不加g則只替換找到的第一個關(guān)鍵字:
sed還可以直接處理文件,在多文庫數(shù)據(jù)處理時,遇到重復(fù)barcode的情況,常需要進(jìn)行barcode替換,如下所示:
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“sed有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。