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...