Linux Sed 指令學習

2021-10-10 04:49:52 字數 1438 閱讀 3046

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 的用法...