溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sed有什么用

發(fā)布時間:2021-12-16 17:03:18 來源:億速云 閱讀:189 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹了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ī)表示法語法)。

-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  :替換,可以直接進(jìn)行替換的工作,通常  s  的動作可以搭配正則表達(dá)式。

⑴新增與刪除功能

sed可以以行為單位按照行號進(jìn)行刪除,例如列出文件內(nèi)容打印行號并刪除第2-5行:

sed有什么用

可以看到標(biāo)準(zhǔn)輸出的內(nèi)容少了2-5行,最后一行可以使用“$”代指。這里省略了-e,也即默認(rèn)就是在命令行模式,還可以根據(jù)關(guān)鍵字進(jìn)行刪除,例如刪除含有“CHEN”的行:

sed有什么用

但是這時文件的內(nèi)容并沒有被更改,如要是刪除原文件的內(nèi)容并保存,可以使用-i參數(shù)直接對文件執(zhí)行命令:

sed有什么用

注意這時候雖然前三行被刪去,行號仍是第一行開始,因為這里  nl  處理的是文件而不是標(biāo)準(zhǔn)輸出內(nèi)容。接下來我們新增新行內(nèi)容,示例如下:

sed有什么用

sed有什么用

這時很明顯的看出兩個新增命令a和i的區(qū)別??梢允褂谩癨+回車”來增添多行內(nèi)容,示例如下:

sed有什么用

⑵替換與顯示功能

sed中的動作命令p可以根據(jù)行號顯示內(nèi)容,例如選擇顯示文件中的第5-7行內(nèi)容:

sed有什么用

sed中的動作命令c可以進(jìn)行整行內(nèi)容替換,例如將文件第2-4行重復(fù)內(nèi)容替換為“reduplicates”:

sed有什么用

sed中的動作命令s可以以行為單位查找關(guān)鍵字并進(jìn)行替換,其中要查找的關(guān)鍵字可以搭配正則表達(dá)式進(jìn)行,例如將文件中所有的“:”替換為“;”:

sed有什么用

其中g(shù)表示全局,也即每一行進(jìn)行全部替換,若不加g則只替換找到的第一個關(guān)鍵字:

sed有什么用

sed還可以直接處理文件,在多文庫數(shù)據(jù)處理時,遇到重復(fù)barcode的情況,常需要進(jìn)行barcode替換,如下所示:

sed有什么用

上面的例子中第一條表示將替換結(jié)果保存為新的文件,而后面兩條則進(jìn)行原文件直接修改。其中  “^”  表示只替換行首出現(xiàn)的關(guān)鍵字。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“sed有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(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)容。

sed
AI