sed使用手冊

2021-04-13 10:54:17 字數 2244 閱讀 8975

原貼:http://blog.chinaunix.net/u/23204/showart_305602.html

sed使用手冊-原創

在sed語句,正規表示式必須封閉在//中間。如/^$/d,刪除空行。  

sed位址

在sed位址管理中,預設是對全域性進行操作,同時位址可以分為行位址和模式位址。

如1,10d  12d  10,$d  表示行位址

如/^$/d  表示模式位址。

使用者在進行操作時,可以對行位址和模式位址一起結合進行操作。如1,/^$/d 表示刪除第一行到第乙個空行之間的所有內容。

sed位址嵌入

address

替換命令

語法格式:

[address]s/old/new/flags

flags如下:

n:1~512之間的數字,表示對本模式中指定的匹配行中出現第n次的情況時進行替換,其它行不進行替換。

如sed 's/unix/unix/2' sed.txt 替換每行中第個unix字元,將其轉換成大寫unix。

g:表示對全域性進行替換。

p:列印模式空間的內容。即列印匹配行的內容。

w file:表示匹配行的內容寫到另乙個檔案中。

注意:定界符可以使用多種,如「/」「#」「,」「!」等

s/     */ /g表示任意多個空格,用乙個空格代替。

s/unix/aa&bb/g 表示將unix替換成aaunixbb。

刪除命令

語法格式:

[address]d

如/^/.aa/d  刪除.aa開頭的內容。   

/^$/d  刪除空行的內容。     (應用到了模式位址)

10d  刪除第10行的內容。       (應用到了行位址)

追加命令

語法格式:

[line-address]a/text

如sed '10a/abcd' sed.txt   在sed.txt檔案中的第10行後面追加一行abcd字元。

sed '/unix/a/abcd//ndcba' sed.txt  在sed.txt檔案中所有出現unix字元的行後面追加一行abcd/ndcba字元

sed '/unix/a/abcd/n/dcba' sed.txt  在sed.txt檔案中所有出現unix字元的行後面追加兩行字元,其中第一行為abcd第二行為dcba。

插入命令

語法格式:

[line-address]i/text

如 sed '/unix/i/adflajflad/n/adfadfajdlf' sed-s.txt  在sed.txt檔案中所有出現unix字元的行前面追加兩行字元,其中第一行為abcd第二行為dcba。

更改命令

語法格式:

[address]c/text

如sed '1c/aaaa' sed-s.txt  將第一行的內容更改為aaaa.

轉換命令

語法格式:

[address]y/old/old/  將小寫的old轉換成大寫的old字元。

使用y命令時,需要注意轉換的字元個數一定要相同,當轉換的字元個數不相同時,系統將提示錯誤。

列印行號

語法格式:

[address]=   列印匹配行的行號。

如 sed '/unix/=' sed.txt  列印sed.txt檔案中,包含unix字元的行號。不包含unix字元的行,不列印行號。

sed  '/yes/=' /etc/ssh/sshd_config

下一步,next

語法格式:

[address]n  next改變正常的流控制,執行完這一步時,不返回,而是執行下一步內容。

讀/寫檔案

語法格式:

[line-address]r file  讀檔案。

[address]w file   寫檔案。

如sed '/unix/r 1.txt' sed-s.txt 在unix字元的後面,讀入1.txt檔案

sed '2r 1.txt' sed-s.txt 在第2行後面,讀入1.txt檔案

sed '2,5w 2.txt' sed-s.txt 將第2行到第5行的內容,寫到2.txt檔案中去。

退出

語法格式:

[address]q

如sed 『100q』 sed.txt  讀到第100行時,退出。

sed '/unix/q' sed.txt  遇到第乙個unix字元時退出。  

sed使用手冊

刪除 d命令 sed 2d example 刪除example檔案的第二行。sed 2,d example 刪除example檔案的第二行到末尾所有行。sed d example 刪除example檔案的最後一行。sed test d example 刪除example檔案所有包含test的行。替換...

sed使用手冊

在sed語句,正規表示式必須封閉在 中間。如 d,刪除空行。sed位址 在sed位址管理中,預設是對全域性進行操作,同時位址可以分為行位址和模式位址。如1,10d 12d 10,d 表示行位址 如 d 表示模式位址。使用者在進行操作時,可以對行位址和模式位址一起結合進行操作。如1,d 表示刪除第一行...

sed使用手冊

刪除 d命令 sed 2d example 刪除example檔案的第二行。sed 2,d example 刪除example檔案的第二行到末尾所有行。sed d example 刪除example檔案的最後一行。sed test d example 刪除example檔案所有包含test的行。替換...