sed文本编辑工具
一、sed文本编辑工具
1、介绍
1.1 作用
命令行工具,用于修改文件
注意: 默认只是在内存修改文本, 不修改原文件
1.2 使用格式
# sed [option] 'script' 文件
# sed [option] '行操作' 文件
行:省略不写, 默认操作所有行
行的写法:
1、行号 8
2、起始行号, 终止行号 2,6
3、/正则表达式/
4、/正则表达式/,/正则表达式/
二、sed常用操作
1、删除整行 d
[root@node01 ~]# df -hT | sed '1d'
[root@node01 ~]# sed '/^$/d' /etc/fstab
[root@node01 ~]# df -hT | sed '/tmpfs/d'
2、显示整行 p
[root@node01 ~]# sed -n '2p' /etc/hosts
[root@node01 ~]# sed -n '4p' /etc/passwd
3、统计行数 =
[root@node01 ~]# sed -n '$=' /etc/passwd
4、整行替换 c \内容
sed -i '/#Port/c \Port 44444' /etc/ssh/sshd_config
5、追加内容 a \内容
[root@node01 ~]# sed '$a \export JAVA_HOME=/opt/jdk' /etc/profile
[root@node01 ~]# sed '$a \192.168.140.10 node01.linux.com' /etc/hosts
6、查找替换 s/旧/新/g
[root@node01 ~]# sed '4s/[0-9]/!/g' /etc/fstab
[root@node01 ~]# sed 's/[0-9]/!/g' /etc/fstab
[root@node01 ~]# sed 's|/|!|g' /etc/fstab
[root@node01 ~]# history | sed -r 's|^[[:space:]]+||'
[root@node01 ~]# sed -r 's|^#[[:space:]]?||' /etc/fstab
三、sed常用选项
- -i 直接修改原文件
- -r 支持扩展正则表达式
- -n 取消内存最后显示结果
- -e 多条件操作
[root@node01 ~]# sed -e '/^#/d' -e '/^$/d' /etc/fstab
- –follow-symlinks 软链接
[root@node01 ~]# sed -ri --follow-symlinks '1d' /tmp/file01
练习:
1、删除df -hT命令行首及所有tmpfs的行
2、修改ssh配置文件,要求如下:
- 修改默认端口为55555
- 关闭DNS反解
- 禁止root用户远程登录
3、将selinux配置文件中SELINUX=enforcing修改为SELINUX=disabled
4、安装httpd,并修改其默认端口为8080
5、在/etc/hosts文件中添加主机名解析
6、在/var/log/messages日志文件中获取指定时间范围内的日志
7、任意创建文件写入4行内容,将其第2, 4行注释
8、显示文件/etc/passwd第五行内容
9、删除历史命令前所有空白字符
办公地点、城区、办公时间、人数、办公人员
anhuaqiao xicheng 2019 100 teacher student staff
sanlitun chaoyang 2015 50 staff
minzuyuan Chaoyang 2015 48 student
Zhongguancun haidian 2012 200 teacher student
10、使用sed将chaoyang/Chaoyang换成朝阳
11、编写脚本,计算办公人数总和
12、用grep过滤出办公地点在朝阳的行