◆ sed基礎概念
◆ sed用法
一.sed 基礎概念:
Stream EDitor (流/行編輯器)
sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”
(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉換程序等
二.sed用法
?功能:轉換和過濾文本;可以一次處理多個文件的多行文本
?格式:sed [option]… ‘script’ inputfile…
?常用選項:
-n:不輸出模式空間內容到屏幕,即不自動打印
-e:多點編輯
-f:/PATH/SCRIPT_FILE:從指定文件中讀取編輯腳本
-r:支持使用擴展正則表達式
-i:直接編輯原文件:危險操作慎用
?script:’地址命令‘
?地址定界:
(1)不給地址:對全文進行處理
(2)單地址:
#:指定的行
/pattern/:被此處模式所能夠匹配到的每一行
(3)地址范圍:
#,#
#,+#
/pat/,/pat2/
#,/pat1/
(4)~:步進
1~2 奇數行
2~2 偶數行
?編輯命令:
d:刪除模式空間匹配的行
p: 顯示模式空間中的內容
a[]text:在指定行后面追加文本
支持使用\n實現多行追加
i[]test:在行前面插入文本
c[]text:替換行為單行或多行文本
W /path/somefile:保存模式匹配的行至指定文件
r /path/somefile: 讀取指定文件的文本至模式空間中匹配到的行后
=:為模式空間中的行打印行號
?。耗J娇臻g中匹配行取反處理,位置如下:
地址定界!編輯命令;
?s///:查找替換,支持使用其它分隔符,s@@@,s###
?替換標記:
g:行內全局替換
p:顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中
?示例
sed -n ‘2p’ f2 :打印文件第二行
sed -n ‘2,10p’ f2 :打印文件第二行到第十行
sed -n ‘2,+10p’ f2 :打印文件第二行到第十二行
sed -n ‘/root/p’ f2 :打印包含root的行
sed -n ‘/^lp/,/^ft/p’ f1 :打印以lp開頭的行到以ft開頭的行
sed -n ‘1~2p’ f2 :打印奇數行
sed ‘2~2d’ f2 :刪除偶數行(同上圖)
sed ‘1,10d’ f2
?高級編輯命令:
h:把模式空間中的內容覆蓋至保持空間中
H:把模式空間中的內容追加至保持空間中
g: 從保持空間取出數據覆蓋至模式空間
G:從保持空間取出內容追加至模式空間
x:把模式空間中的內容與保持空間中的內容進行互換
n: 讀取匹配到的行的下一行覆蓋至模式空間
N:讀取匹配到的行的下一行追加至模式空間
d:刪除模式空間中的行
D:刪除當前模式空間開端至\n的內容(不再傳至標準輸出),放棄之后的命令,但是對剩余模式空間重新執行sed
原創文章,作者:xialingfeng,如若轉載,請注明出處:http://www.www58058.com/71191