请升级浏览器版本

你正在使用旧版本浏览器。请升级浏览器以获得更好的体验。

香橙派(Orange Pi)-Orange pi官网logo

行业知识 知识列表 知识详情
Linux最强大的sed流处理编辑器命令格式参数行定位
2021/09/14 星期二 16:22
sed的执行过程

sed的执行过程

sed一次处理一行内容,不改变文件内容 记住sed在处理完每一行数据之后默认会打印出来. 读入哪一行会先进行正则匹配,如果匹配就让sed命令进行处理,否则直接输出到屏幕.

sed使用方式——命令行格式

sed [-e,-n] '行定位(正则)+sed命令(操作)' file(s)

sed使用方式——命令行格式 参数 -e

-e调用两个sed命令

sed使用方式——命令行格式参数 -n

表示抑制sed默认的打印操作
如果没有加-n,

那如果加上-n参数呢:

$sed -n '/root/p' passwd
root:x:0:0:root:/root:/bin/bash

只输出了一行,有些人会以为sed命令输出了两次,其实不是输出了两次,而是sed命令本身会输出所有读入的行,然后p命令又会打印匹配的行,而-n可以抑制sed默认的打印行为.

sed使用方式——命令行格式 sed命令 p

打印所有匹配的行

sed使用方式——命令行格式 定位一行 x或/pattern/

打印第十行

$ nl passwd |sed -n '10p'
10 news:x:9:9:news:/var/spool/news:/usr/sbin/nologin

打印有root的行

$sed -n '/root/p' passwd
root:x:0:0:root:/root:/bin/bash

sed使用方式——命令行格式 定位几行 x,y或/pattern/,/pattern/或/pattern/,x

打印10,11,12行

$sed -n '10,12p' passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

打印有news的行和有proxy的行之间的行

$ sed -n '/news/,/proxy/p' passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

打印有news的行到第14行之间的行

$ sed -n '/news/,14p' passwd
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin

sed使用方式——命令行格式 行定位 间隔几行 first~step

sed使用方式——命令行格式 行定位 取反!

不打印第一行

$ sed -n '1!p' passwd

不打印1,2行,范围取反

sed -n '1,2!p' passwd

sed使用方式——脚本格式

sed -f scriptfile file(s)

即将跳转到外部网站
安全性未知,是否继续
官方微信
微信中长按识别二维码或
搜索“Orange Pi”公众号