1. 打印:p
[root@TestAs4 chap04]# cat datafile 原文件
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
[root@TestAs4 chap04]# sed -n '/north/p' datafile 取消默認輸出 只打印包含模板的行
northwest NW Charles Main 3.0 .98 3 34
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
[root@TestAs4 chap04]# sed '/north/p' datafile 打印包含模板的行及打印默認輸出
northwest NW Charles Main 3.0 .98 3 34
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
2. 刪除:d
[root@TestAs4 chap04]# sed '3d' datafile 刪除第三行
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
[root@TestAs4 chap04]# sed '3,$d' datafile 刪除第三行到最后的所有行
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
[root@TestAs4 chap04]# sed '/north/d' datafile 刪除所有包含模板north的行
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
central CT Ann Stephens 5.7 .94 5 13
3. 選定行的范圍:逗號
[root@TestAs4 chap04]# sed -n '/west/,/east/p' datafile 所有在模板west和east所確定的行都被打印
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
[root@TestAs4 chap04]# sed -n '1,5'p datafile 打印第一、五行的內容
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
[root@TestAs4 chap04]# sed '/west/,/east/s/$/**?VACA**/' datafile 對于east和west之間的行,末尾用**?VACA**替換
northwest NW Charles Main 3.0 .98 3 34**?VACA**
western WE Sharon Gray 5.3 .97 5 23**?VACA**
southwest SW Lewis Dalsass 2.7 .8 2 18**?VACA**
southern SO Suan Chin 5.1 .95 4 15**?VACA**
southeast SE Patricia Hemenway 4.0 .7 4 17**?VACA**
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
[root@TestAs4 chap04]# sed -n '/west/,/south/p' datafile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
4.多點編輯:e命令
[root@TestAs4 chap04]# sed -e '1,3d' -e 's/Hemenway/Jones/' datafile 刪除1到3行,用Hemenway替換Jones
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Jones 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
5. 從文件讀入:r 命令
[root@TestAs4 chap04]# cat newfile
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
| ***SUAN HAS LEFT THE COMPANY*** |
|_________________________________|
[root@TestAs4 chap04]# sed '/Suan/r newfile' datafile 把newfile文件內容放到Suan行的下面
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
| ***SUAN HAS LEFT THE COMPANY*** |
|_________________________________|
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
注:如果不止一個Suan 則newfile的內容就將顯示在所有匹配行的下面
6. 寫入文件:w命令
[root@TestAs4 chap04]# sed -n '/north/w newfile2' datafile 命令w表示把所有包含north的行寫入到newfile2
[root@TestAs4 chap04]# cat newfile2
northwest NW Charles Main 3.0 .98 3 34
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
7. 追加:a 命令
[root@TestAs4 chap04]# sed '/^north/a ---->THE NORTH SALES DISTRICT HAS MOVED
northwest NW Charles Main 3.0 .98 3 34
---->THE NORTH SALES DISTRICT HAS MOVED
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
---->THE NORTH SALES DISTRICT HAS MOVED
north NO Margot Weber 4.5 .89 5 9
---->THE NORTH SALES DISTRICT HAS MOVED
central CT Ann Stephens 5.7 .94 5 13
注: 在出現首個單詞是north的后一行追加---->THE NORTH SALES DISTRICT HAS MOVED行
8. 插入: i 命令
[root@TestAs4 chap04]# sed '/eastern/i\
> NEW ENGLAND REGION\
> -------------------------------------' datafile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
NEW ENGLAND REGION
-------------------------------------
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
注:如果模板eastern被匹配,i命令把反斜杠后面的文本插入到包含eastern的行的前面
9. 替換:s 命令
[root@TestAs4 oracle]# pwd
/u01/app/oracle
[root@TestAs4 oracle]# pwd | sed 's/\/[^\/]*$/old/' 把“/ u01/app/oracle”的 “/oracle”替換為old
/u01/appold
[root@TestAs4 chap04]# sed -n 's/Hemenway/Jones/pg' datafile 所有的Hemenway行被Jones 替換并打印
southeast SE Patricia Jones 4.0 .7 4 17