文本三剑客之 :sed命令

sed 命令是利用脚本来处理文本文件
pattern space --》处理数据的地方–》处理一行数据后,模式空间会清空
hold space --》临时存放数据的地方
https://www.cnblogs.com/276815076/p/5237886.html图片来源

sed的语法命令格式

sed [选项] sed编辑命令 输入文件
shell 命令 | sed [选项] sed编辑命令
sed [选项] -f sed脚本文件 输入文件

sed的常用选项

n:只显示匹配处理的行(否则会输出所有) *
-e:执行多个编辑命令时(一般用;代替)
-i:直接在文件中进行修改,而不是输出到屏幕 *
-r:支持扩展正则表达式
-f:从脚本文件中读取内容并执行(文件中的编辑命令每行一个,不用;隔开)

sed的常用编辑命令

p:打印匹配行 print

1.连续的行
cat  /etc/passwd|sed -n '1,5p'
2.不连续的行,第10行和20行
cat  /etc/passwd|sed -n '10p;20p'
3.输出第5行和第5行后面的5行
[root@localhost ~]# cat  -n /etc/passwd|sed -n '5,+5p'
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
4.输出5~100行以外的行
[root@localhost ~]# cat  -n /etc/passwd|sed -n '5,100!p'
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
5.步长输出
[root@localhost ~]# cat  -n /etc/passwd|sed -n '1~2p'  单数行
[root@localhost ~]# cat  -n /etc/passwd|sed -n '2~2p'  双数行     

d:删除指定行 delete
a:在匹配行后面追加 append
i:在匹配行前面插入 insert
c:整行替换
r:将文件的内容读入 read
w:将文本写入文件 write
s:字符串替换(匹配正则表达式)substitution
= :输出行号

shell变量传到sed里

双引号

[root@localhost ~]# num1=6
[root@localhost ~]# num2=10
[root@localhost ~]# cat -n /etc/passwd|sed -n "${num1},${num2}p"
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin

单引号

[root@localhost ~]# cat -n /etc/passwd|sed -n ''$num1,$num2'p'
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin

这篇总结的很全面:https://www.cnblogs.com/276815076/p/5237886.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值