溫馨提示×

溫馨提示×

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

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

sed工具的使用

發(fā)布時間:2020-07-30 04:21:05 來源:網(wǎng)絡 閱讀:398 作者:yayaru9240 欄目:編程語言

sed:流式編輯器,把前一個程序的輸出結果引入sed的輸入,經(jīng)過一系列編輯命令轉換為另種格式輸出

命令的基本格式:

sed option 'script' file1 file2 ...

sed option -f scriptfile file1 file2 ...

其中處理的文件可以由標準輸入重定向得到,也可由命令行參數(shù)傳入,sed會依次處理傳入的多個文件,然后逐行進行處理

sed的編輯命令可以直接當命令行參數(shù)傳入,也可以寫成一個腳本文件然后由-f參數(shù)指定,編輯命令的格式為 /pattern/action

pattern為正則表達式,action為符合條件的正則表達式所要執(zhí)行的相應動作

sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖

區(qū)中,稱為“模式空間”(pattern space),接著使用sed命令處理緩沖區(qū)中的內容,處理完成后,把緩沖區(qū)的內容送往標準輸出。接著處理下一行,這樣不斷重復,直到文件末尾。而該操作使文件內容并沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件

如下圖所示,sed的操作過程

sed工具的使用

sed的使用操作

1.輸出符合正則表達式的行,只輸出以2結尾的行,需要加上-n選項

sed工具的使用

2.刪除符合正則表達式的行,刪除以3結尾的行

sed工具的使用

3.查找符合pattern的行,將該行第一個匹配pattern1的字符串替換為pattern2,需要加上s指令

sed工具的使用sed工具的使用

sed工具的使用

其中使用-i選項會更改文件的內容

4.查找符合pattern的行,將該行所有匹配pattern1的字符串替換為pattern2,在編輯命令后加上g表示全替換

查找以1開頭的行,將該行的每個1都替換為~1~,其中&符號表示pattern1的內容

sed工具的使用

對所有數(shù)字行進行處理

sed工具的使用

對數(shù)字和字母行進行處理

sed工具的使用

給每行后加上換行符

sed工具的使用

4.定址:用于決定對哪些行進行編輯。地址的形式可以是數(shù)字、正則表達式、或兩者的結合,如果沒有指定地址,sed將處理輸入文件的所有行

打印指定行

sed工具的使用

打印某一區(qū)域內的所有行

sed工具的使用

也可通過管道先找到前15行再顯示出后5行,不過使用sed命令就更簡便些了

如果沒有定址,sed將顯示所有行

sed工具的使用

查找從1到3結尾的行并顯示

sed工具的使用

5.保持空間與模式空間轉換相關命令和選項

sed工具的使用

sed工具的使用

sed工具的使用

1.給每行的結尾加一個空行,因為保持空間開始的內容為空,因此把保持空間的內容追加到模式空間中,即給每行后加上一個空行

sed工具的使用

2.逆序輸出文件中內容

可以使用tac工具輸出

sed工具的使用

使用sed命令實現(xiàn)

sed工具的使用

該條編輯命令為:若為第1行則不做緊跟在后邊的G操作,但做h(將模式空間內容拷貝到保持空間,刪除原來保持空間的內容)操作,即不把保持空間的內容追加到模式空間,若不是第1行,則做G操作,若為最后一行,則不做d操作,若不為最后一行,則刪除模式空間的內容,并讀入下一新行到模式空間中

3.追加匹配行到文件結尾

查找以9結尾的并追加到文件結尾

sed工具的使用

若為第一行則先進行H操作,再拷貝一次

sed工具的使用

4.行列轉換

sed工具的使用

sed工具的使用

sed工具的使用

在模式空間行的結尾進行x,每行的結尾的\n用空格代替

5.1到100的求和

H表示把模式空間的內容追加到保持空間中去,H可以帶一個地址,如$,表示到文件的末尾,然后用x將之取到模式空間中,把\n替換成空格,再打印 

sed工具的使用

也可使用類C式的goto語句

sed工具的使用

:a表示標簽a,ba表示跳轉(break)到a標簽,$!表示最后一行不做后續(xù)操作,$!ba表示最后一行不跳轉到標簽a,結束此次操作

6.打印偶數(shù)行或基數(shù)行

sed工具的使用

7.注釋轉換

給每行加上注釋,再底行模式下使用以下命令

sed工具的使用

對滿足正則表達式的行去注釋

sed工具的使用

給滿足正則表達式的行加上注釋

sed工具的使用

從某行開始加上后半部分注釋

sed工具的使用

注釋轉換

sed工具的使用

sed工具的使用


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI