天天看點

sed指令基礎

一、sed基本用法

1)sed(stream editor)是流編輯器,可對文本檔案和标準輸入進行編輯。

sed隻是對緩沖區中原始檔案的副本進行編輯,并不編輯原始的檔案,如果需要儲存改動内容,可以選擇使用下面兩種方法:

             重定向

             w編輯指令

2)調用sed有三種方法:

              在Shell指令行輸入指令調用sed,格式為:

                          sed [選項] ‘sed指令’ 輸入檔案

             将sed指令插入腳本檔案後,然後通過sed指令調用它,格式為:

                         sed [選項] -f sed腳本檔案輸入檔案

              将sed指令插入腳本檔案後,最常用的方法是設定該腳本檔案為可執行,然後直接執行該腳本檔案,格式為:

                         ./sed腳本檔案輸入檔案

               第二種方法腳本檔案的首行不以#!/bin/sed –f開頭;第三種方法腳本檔案的首行是#!/bin/sed –f

               推薦使用第一種方法和第三種方法

二、sed指令選項

sed指令基礎

1)預設情況,sed處理完文本将輸入檔案列印到标準輸出;一旦加上-n選項,sed就不再列印輸入檔案,而隻列印處理結果

sed指令基礎

例: 這裡列印第一行

2)當向sed指令傳遞多個編輯指令時,在每個編輯指令前需要加上-e選項

sed指令基礎

例:這裡分别把第一行,和第3-4行列印出來了。

Sed文本定位方法

sed指令基礎

sed編輯指令

sed指令基礎

3)sed文本定位

追加文本:比對行後面插入

sed指令基礎

例:在b下面追加一行e

插入文本:比對行前面插入

sed指令基礎

例:i的參數是在b的前面插入行e,是以a參數實在後面插入,i實在前面插入

删除文本:将指定行或指定行範圍進行删除

sed指令基礎

例:d參數删除1到2行

修改文本:将所比對的文本行利用新文本替代

sed指令基礎

例:将c替換成f,s表示是檔案中所有的都替換。

4)sed替換文本操作将所比對的文本行利用新文本替換,替換文本與修改文本功能有相似之處,它們之間的差別在于:替換文本可以替換一個字元串,而修改文本是對整行進行修改

替換文本的格式為:

s/被替換的字元串/新字元串/[替換選項] 

預設情況下,sed s指令将替換後的全部文本都輸出,如果要求隻列印替換行,需要結合使用-n和p選項,指令格式如下:

sed -n ‘s/被替換的字元串/新字元串/p’ 輸入檔案

w選項後加檔案名表示将輸出定向到這個檔案,與sed編輯指令中的w是不沖突的

sed指令基礎

例:将add中的c替換成f并指顯示被替換的行,并儲存給other

既然能保持成别的檔案,當然也可以讀入其他檔案

sed指令基礎

例:将other的内容插入到add的c行後

sed編輯指令中的{}符号可以指定在定位行上所執行的指令組,它的作用與sed的-e選項類似,都是為了在定位行執行多個編輯指令

sed指令基礎

例:将比對c的行顯示出來,=是并且顯示行号

注:前面我們已經說過sed隻是對緩沖區中原始檔案的副本進行編輯,并不編輯原始的檔案,如果需要儲存改動内容,也可以用-i的參數,但-i就不輸出資訊,所有當我們确定好以後在加上-i參數,例子如下:

sed指令基礎

繼續閱讀