sed
| 参数 | 说明 |
|---|
| -n | 取消默认sed输出,常于sed内置命令p一起使用 |
| -i | 将修改结果写入文件 |
| -e | 多次编辑,多个条件,多个匹配 |
| -r | 支持正则扩展 |
内置命令
| 内置命令字符 | 说明 |
|---|
| a | Append, 对文本追加,在指定行后面添加一行或多行文本 |
| d | 删除匹配行 |
| i | 插入文本,在指定行前添加一行或多行文本 |
| p | 打印匹配内容,常与p和-n一起使用 |
| s/正则/替换内容/g | 匹配正则内容,然后替换内容,结尾g表示全局匹配 |
匹配范围
| 范围 | 说明 |
|---|
| 空地址 | 全文处理 |
| 单地址 | 指定文件某一行 |
| /pattern/ | 被模式匹配到的每一行 |
| 范围区间 | 5,10 五到10行,8,+9 第8行向后9行 |
| 步长 | 12, 表示1,3,5,7,9 22 两个步长,表示2,4,6,8,10行 |
输出文件第2行到第5行的内容
[root@localhost ~]
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
匹配包含root的行
[root@localhost ~]
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
删除含有nologin的行
不会修改源文件,只会修改内存中的数据
[root@localhost ~]
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
www:x:1000:1000::/home/www:/bin/bash
删除第7行到末尾的内容
[root@localhost ~]
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 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
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
14 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19 chrony:x:998:996::/var/lib/chrony:/sbin/nologin
20 www:x:1000:1000::/home/www:/bin/bash
21 saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
22 nginx:x:996:995:Nginx web server:/var/lib/nginx:/sbin/nologin
[root@localhost ~]
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
替换文本
[root@localhost ~]
goupi world
helllllloworld
192.168.183.15
[root@localhost ~]
goupi world
helllllloworld
192.168.183.15
[root@localhost ~]
goupi world
helllllloworld
192.168.183.15
[root@localhost ~]
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:不可登录
daemon:x:2:2:daemon:/sbin:不可登录
adm:x:3:4:adm:/var/adm:不可登录
lp:x:4:7:lp:/var/spool/lpd:不可登录
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:不可登录
operator:x:11:0:operator:/root:不可登录
games:x:12:100:games:/usr/games:不可登录
ftp:x:14:50:FTP User:/var/ftp:不可登录
nobody:x:99:99:Nobody:/:不可登录
systemd-network:x:192:192:systemd Network Management:/:不可登录
dbus:x:81:81:System message bus:/:不可登录
polkitd:x:999:998:User for polkitd:/:不可登录
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:不可登录
postfix:x:89:89::/var/spool/postfix:不可登录
chrony:x:998:996::/var/lib/chrony:不可登录
www:x:1000:1000::/home/www:/bin/bash
saslauth:x:997:76:Saslauthd user:/run/saslauthd:不可登录
nginx:x:996:995:Nginx web server:/var/lib/nginx:不可登录
多个条件,多次编辑 -e
[root@localhost ~]
goupi world
helllllloworld
10.168.183.15
修改写入文件
[root@localhost ~]
[root@localhost ~]
goupi world
helllllloworld
10.168.183.15
在文件的第2行追加指定内容
[root@localhost ~]
goupi world
helllllloworld
10.168.183.15
[root@localhost ~]
goupi world
helllllloworld
我想要钱
10.168.183.15
在文件第1行前面插入指定内容
[root@localhost ~]
goupi world
helllllloworld
10.168.183.15
[root@localhost ~]
宇智波斑快掏钱
goupi world
helllllloworld
10.168.183.15
添加多行文本
[root@localhost ~]
佐助: 秽土转生吧,鼬!
大蛇丸:好滴,老铁
goupi world
helllllloworld
10.168.183.15
每一行追加指定内容
[root@localhost ~]
goupi world
-----------
helllllloworld
-----------
10.168.183.15
-----------
匹配ip地址
[root@localhost ~]
192.168.101.28
使用-e
[root@localhost ~]
192.168.101.28