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