一、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指令選項
1)預設情況,sed處理完文本将輸入檔案列印到标準輸出;一旦加上-n選項,sed就不再列印輸入檔案,而隻列印處理結果
例: 這裡列印第一行
2)當向sed指令傳遞多個編輯指令時,在每個編輯指令前需要加上-e選項
例:這裡分别把第一行,和第3-4行列印出來了。
Sed文本定位方法
sed編輯指令
3)sed文本定位
追加文本:比對行後面插入
例:在b下面追加一行e
插入文本:比對行前面插入
例:i的參數是在b的前面插入行e,是以a參數實在後面插入,i實在前面插入
删除文本:将指定行或指定行範圍進行删除
例:d參數删除1到2行
修改文本:将所比對的文本行利用新文本替代
例:将c替換成f,s表示是檔案中所有的都替換。
4)sed替換文本操作将所比對的文本行利用新文本替換,替換文本與修改文本功能有相似之處,它們之間的差別在于:替換文本可以替換一個字元串,而修改文本是對整行進行修改
替換文本的格式為:
s/被替換的字元串/新字元串/[替換選項]
預設情況下,sed s指令将替換後的全部文本都輸出,如果要求隻列印替換行,需要結合使用-n和p選項,指令格式如下:
sed -n ‘s/被替換的字元串/新字元串/p’ 輸入檔案
w選項後加檔案名表示将輸出定向到這個檔案,與sed編輯指令中的w是不沖突的
例:将add中的c替換成f并指顯示被替換的行,并儲存給other
既然能保持成别的檔案,當然也可以讀入其他檔案
例:将other的内容插入到add的c行後
sed編輯指令中的{}符号可以指定在定位行上所執行的指令組,它的作用與sed的-e選項類似,都是為了在定位行執行多個編輯指令
例:将比對c的行顯示出來,=是并且顯示行号
注:前面我們已經說過sed隻是對緩沖區中原始檔案的副本進行編輯,并不編輯原始的檔案,如果需要儲存改動内容,也可以用-i的參數,但-i就不輸出資訊,所有當我們确定好以後在加上-i參數,例子如下: