Sed常用用法整理

king3171發表於2020-06-21

將檔案中的root全部替換為abc:

sed  's/root/abc/g' passwd 只輸出執行結果,不修改檔案

sed -i 's/root/abc/g' passwd 直接修改檔案


列印檔案第2行:

sed -n 2p passwd


列印第2-5行

sed -n 2,5p passwd


在檔案的第2行後插入一行

sed '2a  106,dandan,cso' passwd


在檔案的第2行前插入一行

sed '2i  106,dandan,cso' passwd


刪除檔案中第2到第5行

sed '2,5d' passwd


實現取出匹配begin的行直到匹配到end字元的行結束

sed -n '/begin/,/end/p' 1.txt


列印匹配abc的行到最後一行的內容

sed -n '/abc/,$p' file.txt


擷取6天前的日誌

sed -n '/'"$(date -d "-6 day" +%b" "%d)"'/,$p' /home/oracle/test/alert_orcl11g.log | more 

sed -n '/'"$(date -d "-6 day" +%b" "%d)"'/,$p' /home/oracle/test/alert_orcl11g.log  > alert.log


擷取兩個字串之間日誌


n 匹配行的下一行

N 追加到下一行


p 列印

P 列印到\n


b 無條件跳轉 未匹配後面不執行

t 有條件跳轉 未匹配執行後面


:fun1

在匹配B時,b func1 類似goto 跳轉到 前面A匹配中


N 判斷後拼接不匹配

n 判斷後過濾不匹配

# sed '/A/{p;:fun1 ; n ; :fun2 /B/{p;b fun1} ;n; b fun2} ’ file1 -n


查詢特定的字串

sed -n "/2010:13:30:00/,/2010:17:30:00/"p access_2010011605.log | awk -F: '/'.'php/{print $2}' |uniq -c

 168576 13

 301975 14

 285616 15

 299248 16

 154377 17


sed -n "/2010:09:30:00/,/2010:13:30:00/"p action.new |awk '{if($3~/^action/){print $3} else if($4~/^action/){print $4}}' |sort |uniq -c |sort -nr

533271 action=plInfo

 132742 action=FriendPet

 101258 action=Info


awk ‘/字串1/{a=1}a{b=b?b"\n"$0:$0;if(b~/字串2/){print b;b=""}}’ file

sed -n ‘/字串1/{p;:1;n;:2;/字串2/{p;b1};N;b2}’ file

awk ‘/字串1/{a=1}a{b=b?b"\n"$0:$0;if(b~/字串2/){print b;b=""}}’ file

sed -n ‘/字串1/{p;h;b};:m;x;/lzj/{x;N;/字串2/!{bm;};p;b};x’ file


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51077/viewspace-2699788/,如需轉載,請註明出處,否則將追究法律責任。

相關文章