linux中exp命令详解_【Linux学习011】sed命令详解

一、简介

sed(Stream EDitor)是一种行编辑器,Linux中有三种常见的行编辑器:gred,sed,awk,其中awk命令最复杂,grep命令最简单,sed命令难度适中。

sed命令能够接收一个文件或者管道输入流,以一次处理一行的方式处理完成整个文档,能够接收管道输入流是sed命令的一个特色功能。

sed最全命令格式展开

sed OPTIONS... [SCRIPT] [INPUTFILE...]

其中[SCRIPT]部分是由两部分组成:Address Command  ,其实就是

sed OPTIONS... [Address[Command]] [INPUTFILE...]

二、Options

1.    -n    启用静默模式。默认sed命令会打印出模式空间中的内容,使用该选项将不再打印。

2.    -r    启用扩展的正则表达式

3.    -f    script-file    使用脚本文件添加额外的处理文本功能

4.    -e    script         使用脚本添加额外的处理文本功能

三、Address

Address的作用就是“选择行(Selecting Lines)”,也就是选定作用范围。

1.n

选择指定的某行

2.startline,endline

指定开始行和结束行,比如3,5,指定第三行到第五行的所有行。

3.startline~step

指定开始行以及步长,2~3表示选定从第2行开始每3行直到文件尾部的所有行。

4./RegExp/

指定所有符合正则表达式的行,如果表达式中有/,必须使用\将其转义:\/

5.$

选定文件最后一行

6.startline,+n

从startline开始,向后的n行

7.startline,~n

从startline开始,向前和向后的n行

四、Command

紧接着Address的是Command,是对选中文本的操作

1.d    删除符合条件的行

2.p    显示符合条件的行,该命令一般和-n选项使用

3.a \string    在在指定的行后面添加新行,内容为string,可以使用\n换行

4.i \string    在指定的行前面添加新行,内容为string,可以使用\n换行

5.s/regexp/replacement/flags   将匹配到的串替换成为指定的字符串,分隔符/可以自定义,如果表达式中用到了/需要使用\进行转义。

flag可以包含

g    :全局替换。默认只替换每行的第一个匹配项

i      : 忽略字母大小写

五、练习

1.删掉/etc/profile文件中行首的所有空白字符

sed -r 's/^[[:space:]]+//g' /etc/profile

分析:删除一行中的一部分字符使用替换功能,所以使用s命令,-r指定使用扩展的正则表达式。

2.删除/etc/profile文件中的空白行

sed -r '/^$/d' /etc/profile

删除行使用命令d,Address使用正则表达式^$匹配,但是需要加上//

3.删除/etc/profile文件中以#开头并且后面带有至少一个空格的字符

sed -r 's/^#[[:space:]]+//g' /etc/profile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值