標籤:
sed用於一次性處理所有的編輯任務,尤為高效,為使用者節省了大量的時間,sed適用於以下三種場合:
1、編輯相對互動文字編輯器而言太大的檔案;
2、編輯命令太複雜,在互動式文字編輯器中難以輸入的情況;
3、對檔案掃描一遍,但是需要執行多個編輯函數的情況;
sed 只是對緩衝區中原始檔案的副本進行編輯,並不編輯原始的檔案。因此,如果需要儲存改動內容,需要將輸出重新導向到另一個檔案,可以使用下面格式的命令:
sed ‘sed命令‘ input_file > result_file
該命令將sed 命令對input-file的更改儲存到result-file中,“>”符號是重新導向符號;
調用sed的三種方式:
1、在shell中直接調用sed,格式為:sed [選項] ‘sed命令‘ 輸入檔案 //必須用單引號引起sed命令
2、將sed命令插入指令檔後,然後通過sed命令調用它,格式為:
sed [選項] -f sed指令碼 輸入檔案
3、直接執行sed指令碼,格式為:
./sed 指令檔 輸入檔案
sed命令標識對文本進行如何處理。如列印、刪除、追加、插入、替換等
sed命令定位文本的方法:
sed -n ‘1p‘ input //僅僅列印input的第一行; 若不帶-n選項,則不僅僅列印第1行,還會列印input的全部內容;
sed -n ‘3, 6p‘ input //僅僅列印第3-6行
使用/pattern/方法進行模式比對
sed -n ‘/Certificate/p‘ input //列印匹配Certificate的行,大小寫敏感
sed -n /Certificate/, 6p‘ input //列印匹配Certificate的行 到 6 之間的行
sed編輯命令 a\ 符號用於追加文本,它可以將指定文本的一行或多行追加到指定行後面。如果不指定文本追加位置,sed預設放置到每一行的後面,追加文本的格式為:
sed ‘指定地址a\text‘ 輸入檔案
註:指定地址以匹配模式/pattern/或行號的形式給出,用於定位新文本的追加位置,sed對\a後的文本進行追加操作(增加新的一行);
特別注意:sed完成追加文本功能後,只是將結果輸出到標準輸出,原始檔案並沒有做任何改變;
1 /bin/sed -f #必須加上-f選項, 若無此選項,指令碼執行報錯2 /test/a\ #a\表示在test所在的行之後添加文本3 4 #新增內容5 We append a new line . \ #"\”符號表示換行6 We append another line.
"$"符號,在Regex中表示行尾,特別注意的是,在sed中, "$"表示最後一行;
sed -n ‘2, 10!p‘ input //表示列印出非2--10行的行;
插入文本:sed ‘指定地址i\text‘ 輸入檔案 //與“a\”剛好相反,在指定位置所在行之前行拆入text; (text是新的一行)
Shell之sed命令