sed命令使用详解归纳

用法

sed [option] ‘Address Command‘ yourfile

e.g. sed -n ‘2,13p‘ lineuser #打印文件lineuser中第2~13行的内容,-n为option, 2,13为Address,p为Command

Address与Command中间的空格也可以省略

sed处理过程

待处理的文件一行一行地被sed读入到模式空间(pattern space)中,根据匹配及相应的处理命令进行输出显示,默认下每个模式空间的内容都会输出

sed常用option

  -n:不显示模式空间的行,只显示被匹配处理的行

  -i : 将处理后的结尾直接覆盖原文件

  -e script:可以指定多个-e参数,每个处理命令都依照最原先的文件内容进行处理,而不是一个处理完再传递给下一个处理

  -f script-file :将命令参数写到一个文件中进行调用

  -r:表示使用扩展正则表达式

练习文件

[[email protected] tmp]# cat lineuser

1:root

2:bin

3:daemon

4:adm

5:gootee

6:sync

7:shutdown

8:halt

9:mail

10:uucp

11:operator

12:hadoop

13:gopher

14:admin

15:nobody

Address匹配方式

1.addr1 匹配指定特定行

#显示第三行内容

[[email protected] tmp]# sed -n ‘3p‘ lineuser

3:daemon

2.addr1,addr2 匹配从addr1到addr2的行

#打印第四到六行

[[email protected] tmp]# sed -n ‘4,6p‘ lineuser

4:adm

5:gootee

6:sync

3./regexp/ 匹配含有regexp的行

打印所有包含oo字符的行

[[email protected] tmp]# sed -n ‘/oo/p‘ lineuser

1:root

5:gootee

12:hadoop

4./regexp1/, /regexp2/ 匹配从含有regexp1,到regexp2的行

#打印从包含有mon的行到包含有adm的行

[[email protected] tmp]# sed -n ‘/mon/,/adm/p‘ lineuser

3:daemon

4:adm

5.first~step 匹配以first行为开始,以step为间隔的行

#打印1,3,5....的行,即奇数行

[[email protected] tmp]# sed -n ‘1~2p‘ lineuser

1:root

3:daemon

5:gootee

7:shutdown

9:mail

11:operator

13:gopher

15:nobody

#打印2,4,6....的行,即偶数行

[[email protected] tmp]# sed -n ‘2~2p‘ lineuser

2:bin

4:adm

6:sync

8:halt

10:uucp

12:hadoop

14:admin

6.addr1,+N 匹配addr1行及之后的N行

[[email protected] tmp]# sed -n ‘3,+4p‘ lineuser

3:daemon

4:adm

5:gootee

6:sync

7:shutdown

7./regexp/,+N 匹配含有regexp的行,及其后面N行

[[email protected] tmp]# sed -n ‘/adm/,+1p‘ lineuser

4:adm

5:gootee

14:admin

15:nobody

Command命令

1. a \text 在匹配的行后添加行

#在5到8行后每行添加一行

[[email protected] tmp]# sed ‘5,8a \nice to meet you‘ lineuser

1:root

2:bin

3:daemon

4:adm

5:gootee

nice to meet you

6:sync

nice to meet you

7:shutdown

nice to meet you

8:halt

nice to meet you

9:mail

10:uucp

11:operator

12:hadoop

13:gopher

14:admin

15:nobody

2. i \text 在匹配的行前添加行

#在5到8行前每行添加一行

[[email protected] tmp]# sed ‘5,8i \nice to meet you‘ lineuser

1:root

2:bin

3:daemon

4:adm

nice to meet you

5:gootee

nice to meet you

6:sync

nice to meet you

7:shutdown

nice to meet you

8:halt

9:mail

10:uucp

11:operator

12:hadoop

13:gopher

14:admin

15:nobody

3. d 删除匹配的行

#删除5到13行

[[email protected] tmp]# sed ‘5,13d‘ lineuser

1:root

2:bin

3:daemon

4:adm

14:admin

15:nobody

4. c \text替换匹配的行

#5到13行的所有内容替换成一行

[[email protected] tmp]# sed ‘5,13c \nice to meet you‘ lineuser

1:root

2:bin

3:daemon

4:adm

nice to meet you

14:admin

15:nobody

5. p 打印匹配的行 示例在上面已经出现,不再列举

6. r file 在匹配的行后插入file的内容

#在第3~5行每行后添加文件的内容

[[email protected] tmp]# cat name

Beijing

Shenzhen

[[email protected] tmp]# sed ‘3,5r name‘ lineuser

1:root

2:bin

3:daemon

Beijing

Shenzhen

4:adm

Beijing

Shenzhen

5:gootee

Beijing

Shenzhen

6:sync

7:shutdown

8:halt

9:mail

10:uucp

11:operator

12:hadoop

13:gopher

14:admin

15:nobody

7 s/regexp/replacement/ 将regexp替换成replacement,默认只处理每一行第一个出现的字符串,如果要处理所有的字符串,需要在最后加上g,如果需要忽略大小写,需要在最后加上i

#将第3到15行里面出现oo的地方都替换成NICE TO MEET YOU

[[email protected] tmp]# sed ‘3,15s/oo/NICE TO MEET YOU/‘ lineuser

1:root

2:bin

3:daemon

4:adm

5:gNICE TO MEET YOUtee

6:sync

7:shutdown

8:halt

9:mail

10:uucp

11:operator

12:hadNICE TO MEET YOUp

13:gopher

14:admin

15:nobody

时间: 2024-10-05 12:56:54

sed命令使用详解归纳的相关文章

sed命令应用详解

sed应用详解 sed是文本处理处理工具"三大剑客"之一,它 是一种流编辑器,sed一次只处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.sed不会修改原文件内容,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等. 用法:sed [OPTION]

Linux下的sed命令使用详解

sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出. 使用语法sed命令的使用规则是这样的: sed [option] 'command' input_file 其中option是可选的,常用的option有如下几种: -n

sed命令使用详解

[[email protected] ~]# sed [-nefr] [动作] 选项与参数:-n :使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上.但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来.-e :直接在命令列模式上进行 sed 的动作编辑:-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作:-r :sed 的动作支持的是延

shell三剑客之sed命令使用详解

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. -sed的选项.命令.替换标记 命令格式 sed [option

linux sed命令使用详解

1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等.以下介绍的是Gnu版本的Sed 3.02. 2. 定址 可以通过定址来定位你所希望编辑的行,该地

Linux sed命令实例详解

简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed使用参数 [[email protected] ~]# sed [-nefr] [动作] 选项与参数: -n

install 命令用法详解

install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似,都可以将文件/目录拷贝到指定的地点. 但是,install允许你控制目标文件的属性. install通常用于程序的makefile,使用它来将程序拷贝到目标(安装)目录  make install 语法 install [OPTION]... [-T] SOURCE DEST install [O

Pip 命令使用详解

Pip 命令使用详解 2015-01-06 21:44 3033人阅读 评论(0) 收藏 举报  分类: debian(3)  redis(1)  python 1.pip下载安装1.1 pip下载 1 # wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate 1.2 pip安装 1

linux wget 命令用法详解(附实例说明)

Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器.这样既浪费时间又浪费精力,那不没办法的事.而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步.wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来