sed
简介
sed是一种流编辑器,以行为单位进行文本处理,可以将数据行进行替换、删除、新增、选取等操作。
sed [options] 'command' file(s)
基本命令
匹配内容
$ sed 'p' /etc/passwd # 每一行输出两次
$ sed -n 'p' /etc/passwd # 每行只出现一次
$ sed -n '/root/p' /etc/passwd
root:x:0:0:root:/root:/bin/zsh
# 等同于
$ grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/zsh
行定位
定位一行
$ sed -n '10p' /etc/passwd # 打印第10行
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
$ nl /etc/passwd | sed -n '10p'
10 news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
定位多行
$ nl /etc/passwd | sed -n '10,12p' # 指定行数
10 news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
11 uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
12 proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
$ nl /etc/passwd | sed -n '/uuidd/,/sshd/p' # 指定内容 匹配从uuidd到sshd的行
27 uuidd:x:108:112::/run/uuidd:/bin/false
28 dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/bin/false
29 sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
反向匹配