您的位置:首页 > 其它

sed 用法及实例

2013-09-28 16:23 363 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: