linux sed 中文,Linux sed命令用法大全

1、sed简介

sed是一种流式编辑器,它是文本处理中非常重要的工具。

2、sed的工作机制

sed处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"( pattern space),接着sed命令处理缓冲区中的内容,处理完成之后,把缓冲区的内容送往屏幕显示。接着处理下一行,这样不断重复,直到文件末尾。文件内容没有改变,除非使用了写入的命令,将内容更新。

3、sed命令格式sed [选项] 动作 文件

4、sed的常用的选项

-n:使用静默(silent)模式。在一般 sed 的用法中,所有来自stdin的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed特殊处理的那一行才会被列出来。

-i:直接修改读取的文件内容,而不是输出到终端。

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

5、sed动作说明动作的格式为:[n1[,n2]]function

(1)n1, n2:代表『地址定界』,下文会有介绍。

(2)function为编辑命令,常见的命令有:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行

d :删除,因为是删除啊,所以 d 后面通常不接任何行

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现

p :打印,亦即将某个选择的数据打印出来。通常 p 会与参数 sed -n 一起配合

s :取代,可以直接进行取代的工作

6、sed地址定界

sed功能十分强大,其最大的特点是地址定界,通过设置地址用于决定对哪些行进行编辑。如果没有指定地址,sed将处理输入文件的所有行。

sed地址的形式可以是数字、正则表达式或二者的结合。尤其是"数字+正则表达式"这种写法更是奇奇怪怪,丑态百出,让人不忍直视。下面请一睹芳容吧:

(1)全文匹配:不需要给定地址

(2)单地址匹配:写一个数字即可,例如:'8'表示匹配第8行

(3)多地址匹配:给定一个范围,例如:'1,9'表示匹配第1行到第9行

(4)模式匹配:例如:'/正则表达式/'表示正则表达式匹配到的行。再如,'1,/正则表达式/' 表示从第一行到正则表达式匹配到的行。

(5)步长匹配:例如:'1~2'表示所有奇数行,而'2~2'表示所有偶数行

7、sed常见用法

s: 替换。sed -i 's/原字符串/新字符串/' /home/1.txt

sed -i 's/原字符串/新字符串/g' /home/1.txt

d:删除cat system.log

111

222

333

# 删除1行和2行

[root@localhost ~]# sed '1,2d' system.log

333

# 删除/etc/fstab文件中以#开头的行

[root@localhost ~]# sed '/^#/d' /etc/fstab

p:打印只打印第三行

sed -n '3p' /var/log/yum.log

第2行后插入drink tea

[root@localhost ~]# nl /etc/passwd | sed '2a drink tea'

第2行前插入drink tea

[root@localhost ~]# nl /etc/passwd |sed '2i drink tea'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值