sed 用法簡單總結

2021-05-26 13:16:18 字數 2338 閱讀 2997

sed是乙個行編輯方式,才發現用熟練以後節約了很多時間

注意匹配是'\' 的轉意作用

-i 寫回原始檔

sed -n '2p' tmp  不要單引號其實也可以

sed -n '1,3p' tmp

sed -n '/try/p' tmp         

sed -n '1,$p' tmp

sed '/.*ing/p' tmp                                            

sed '$p' tmp

sed -n 's/am/& hahaha/p' tmp   在這個am這個模式的後面加hahaha  &儲存了發現模式 

sed -n 's/am/hahaha &/p' tmp   在這個am這個模式的前面加hahaha     這裡的/也可一用:代替

sed -n 's:arm:hahaha &:p' tmp

sed "s/go/$replace/g"    從shell向sed傳值用雙引號

sed  '/try/ a\ ******\n yyyyyy\n zzzzzzz' funtion_use_shell  附加

sed  '/try/ i\ ******\n yyyyyy\n zzzzzzz' funtion_use_shell  插入

sed  '/try/ c\ ******\n yyyyyy\n zzzzzzz' funtion_use_shell  替代

[address[,address]] s/pattern-to-find/replacemen-pattern/[g p w n]

g全部,否則只替換找到的第乙個 p列印,這會跳過-n選項 sed預設列印所有 -n關閉列印  w 檔名 將結果寫入相應的檔案

sed '1,3d' tmp                          刪除1到3行

sed -n 's/am/& hahaha/pw tmp1' tmp        將結果寫入檔案

sed  '/am/r tmp1' tmp                  讀檔案

sed  '/try/q' funtion_use_shell  退出

5.sed裡有模式空間(pattern space)和暫存緩衝區兩個概念

sed的處理方式記錄:

第一,行處理時,sed工作原理(不考慮暫存緩衝區與n、n等命令):

a)      從標準輸入或檔案中讀入一行,存入模式空間(pattern space)中,存的時候不存\n

b)      sed依據命令對其進行處理

c)      將處理完的列印出來,並在末尾加上\n,shell遇到\n就自動換行

第二,使用n的時候情況如下:

a)       從標準輸入或檔案中讀入一行,存入模式空間(pattern space)中,存的時候不存\n

b)       sed依據命令對其進行處理,遇到n命令時,在模式空間的末尾加上\n,然後將下一行讀入進來,追加在剛新增的\n後面,此時模式空間的末尾依然沒有\n(至始至終就不會有)

c)       將處理完的列印出來,shell遇到\n時候就自動換行,並在末尾加上\n

1,sed 如果處理多個sed命令,可以用-e,每個-e對應乙個sed命令,第乙個不用-e,例如sed -n 's/student/p' -e  '/student/='  local.c

還有一種方式用";'分號將各個命令隔開如 sed -n 's/student/p;/student/=' local.c,注意雖然前後有兩個命令,但是都是對同乙個模式       空間進行處理,也就是同一行進行處理

2,  解釋sed -n '/student/p' local.c | sed 'n;/\n/:   /g'

第乙個是在關閉自動列印,然後尋找到模式student所在的行,並列印(p)。然後通過管道傳遞給第二個sed,第二個sed首先用n      命令讀取另外一行到模式空間,然後處理,對照sed處理有n的情況下的處理方式理解

x                       x為一行號,如 1

x,y                     表示行號範圍從 x到y,如2,5表示從第 2行到第5行

/pattern/               查詢包含模式的行。例如 /disk/或/[a-z]/

/pattern/pattern/       查詢包含兩個模式的行。例如 /disk/disks/

pattern/,x              在給定行號上查詢包含模式的行。如 /ribbon/,3

x,/pattern/             通過行號和模式查詢匹配行。 3./vdu/

x,y!                    查詢不包含指定行號 x和y的行。1,2!

sed 用法總結

sed n 1,3 p filename 列印1 3 行sed n if fi p filename 列印字元if和 fi之間的內容 sed e 1996 d filename 刪除除了含有 1996 的所有行 sed e y abc abc filename 把小寫的 abc轉換成大寫的 abc ...

sed簡單用法

一 替換 1 將替換後的文字顯示在螢幕上 1 sed s pattern replace string file 或者通過管道 1 catfile sed s pattern replace string 2 替換原始檔中的文字 1 sed s pattern replace string g fi...

sed簡單用法

引數說明 e 以指定的script來處理輸入的文字檔案 f 以指定的script檔案來處理輸入的文字檔案 h 顯示幫助 n 僅顯示script處理後的結果 v 顯示版本資訊 v 反選 動作說明 a 新增,後面跟字串,插入在指定行的下一行 c 取代,後面跟字串,可以取代n1,n2之間的行 d 刪除 i...