sed基础工具详解

Stream EDitor,流式编辑器

-非交互,基于模式匹配过滤及修改文本

-逐行处理,并将结果输出到屏幕

-可实现对文件的输出,输出,删除,替换,复杂,剪切,导入,导出等各种操作


主要用法

-格式1:前置命令 | sed [选项] ‘编辑指令’

-格式2: sed [选项] ‘编辑指令’文件 .. ..


常见命令选项

-n:屏蔽默认输出(全部文本)

-i:直接修改文件内容

-r:启用扩展的正则表达方,若与其他选项一起使用,应作为首个选项


条件,可以是行号或/正则/

-行号可以使用当个数字表示单行

-或者3,5表示连续的多行

-省掉条件,默认逐行处理全部文本

-匹配正则时,需要使用//

[root@server0 ~]# sed -n '2,4p' /etc/passwd  输出第2-4行

[root@server0 ~]# sed -n 'p' /etc/passwd  输出全部

[root@server0 ~]# sed -n '/root/p' /etc/passwd  输出包含root的行


基本动作指令

替换操作的分隔‘’/‘’可改用其他字符,如#,&等,便于修改文件路径。


小试牛刀:

1.打印zhy.txt的所有行

[root@server0 ~]# sed -n 'p' zhy.txt    

2.打印zhy.txt的第2行             

[root@server0 ~]# sed -n '2p' zhy.txt

3.打印zhy.txt的以zhu开头的行

[root@server0 ~]# sed -n '/^zhu/p' zhy.txt

4.打印zhy.txt的1~2行

[root@server0 ~]# sed -n '1,2p' zhy.txt

5.打印zhy.txt的总行数

[root@server0 ~]# sed -n '$=' zhy.txt

6.打印zhy.txt的第1行以后面的2行

[root@server0 ~]# sed -n '1,+2p' zhy.txt


1.删除zhy.txt的1到2行

[root@server0 ~]# sed '1,2d' zhy.txt

2.删除zhy.txt的包含hope的行

[root@server0 ~]# sed '/hope/d' zhy.txt

3.删除zhy.txt的以zhu开头的行

[root@server0 ~]# sed '/^zhu/d' zhy.txt

4.删除zhy.txt的以here结尾的行

[root@server0 ~]# sed '/here$/d' zhy.txt

5.删除zhy.txt的空行

[root@server0 ~]# sed '/^$/d' zhy.txt


替换文本

1.在zhy.txt把zhy替换aaa

[root@server0 ~]# sed -n 's/zhu/aaa/p' zhy.txt

2.在zhy.txt把每行中第2个h替换g

[root@server0 ~]# sed 's/h/g/2' zhy.txt

3.在zhy.txt把所有的h都替换ddd

[root@server0 ~]# sed 's/h/ddd/g' zhy.txt

4.在zhy.txt把所有的h都删掉

[root@server0 ~]# sed 's/h//g' zhy.txt

5.在zhy.txt把1到3行首行加上#

[root@server0 ~]# sed '1,3s/^/#/' zhy.txt

6.在zhy.txt把1到3行首行删掉#

[root@server0 ~]# sed '1,3s/^#//' zhy.txt













猜你喜欢

转载自blog.csdn.net/zhydream77/article/details/80117660