sed(stream editor):文字編輯器(你就把他想成是平常用的notepad++或者你熟悉的編輯器就ok)
用法:sed [選項] 『命令』 檔案
選項:
-n:靜默模式,只顯示匹配處理的行(否則會輸出所有)
-i:真修改,不加-i的修改都是輸出修改
-r:支援複雜正規表示式
-f:指定命令檔案,比如命令很複雜,就直接sed -f 命令檔案 操作檔案
-e:多次編輯,-e '命令1'
-e '命令2'..
.命令:
i:行前插入
r:read,讀取某檔案,sed -i '1r 讀檔案' 原始檔,在原始檔第一行後追加讀檔案內容
w:write,寫入某檔案,sed -i 'w 寫檔案' 原始檔,將原始檔寫入寫檔案
p:print,列印
d:delete,刪除
s:修改,用法固定如下
s/old/
new/:修改每行匹配的第乙個
s/old/
new/g:修改每行匹配的所有
s/old/
new/
2g:修改每行匹配第二個開始往後的所有
s/old/
new/
2:修改每行匹配的第二個
s/old/
new/ig:修改每行匹配的所有,不區分大小寫
pattern:也就是命令前面指定的模式
10command:第10行開始匹配
10,20command:第10
-20行匹配
10,+5command:第10開始 往後5行結束
/pattern1/command:滿足pattern1的匹配
/pattern1/
,/pattern2/command:匹配到pattern1的行開始,pattern2的行結束
10,/pattern/command:第10
~ 匹配到pattern的行結束
/pattern/
,10command:匹配到pattern的行開始,第10行結束
反向引用:用於修改
&:只能修改匹配串所有
\1:可以修改匹配串的部分
例: 修改所有aa為bbaa
sed -i 's/aa/bb&/g' file
修改aabb為aacc
(括號需要轉移)
sed -i 's/\(aa\)bb/\1cc/g' file
編輯器不外乎crud,其他複雜需求則編寫對應正則即可,至於指令碼方面,用到了再說咯- -c:sed -i '/pattern/a' file
r:sed -i '/pattern/p' file
u:sed -i 's/old/new/g' file - old可為正規表示式
d:sed -i '/pattern/d' file
linux sed指令的替換操作
替換文字中的字串 sed s book books file注意最後乙個 不可少 n選項和p命令一起使用表示只列印那些發生替換的行 sed n s test test p file 全面替換標記g 使用字尾 g 標記會替換每一行中的所有匹配 sed s book books g file echo ...
linux sed學習總結
sed 基本用法 最終列印 列印出模式空間中的經過處理後剩下的文字 man sed sed option addresscommand file.n 靜默模式,只顯示符合條件的行 i 直接修改原始檔 會修改到原檔案,注意 e script e script 同時執行多個指令碼 f path to s...
Linux sed命令學習
文章摘抄至 sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作,下面先了解一下sed的用法 sed命令列格式為 sed nefri command 輸入文字 常用選項 n 使用安靜 silent 模式。在一般 sed 的用法...