1.sed:主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
1.过滤文本当中指定的行:d
语法:sed 'nd' 文件名
[root@master3 ~]# sed '4d' test1.txt 过滤掉第4行
[root@master3 ~]# sed '4,6d' test1.txt 过滤掉第4-6行
[root@master3 ~]# sed '4,$d' test1.txt 过滤掉从第4行开始到最后一行的数据
2.显示文本中指定的行:p
语法:sed -n 'n,mp' 文件名
[root@master3 ~]# sed -n '4,6p' test1.txt 只显示第4行到第6行的数据
[root@master3 ~]# sed -n '4,$p' test1.txt 显示从第4行开始到文件末尾的数据
3.替换文本中的内容:s
语法:sed 's/替换前的字符串/替换后的字符串/n|g'
g:进行全局替换,将文件中出现的所有的都进行替换。
n:代表替换的是滴n次出现的字符串,n是一个数字,从1开始
2.cut:分割,截取,可以将文本中的内容通过指定的分隔符分割成若干列数据。
语法:cut -d ‘分隔符’ -fn 文件名
将/etc/passwd文件按照“:”进行分割成若干列,并且获取第1列数据
[root@master3 ~]# cut -d ':' -f1 /etc/passwd
编写一个shell脚本来判断当前登录的用户是否是root用户
1.打印出当前用户的登录信息
[root@master3 ~]# env
2.从登录信息中在过滤当前登录的用户名:
[root@master3 ~]# env | grep USER
3.将处理后的结果再根据=进行分割,分割之后获取第2列数据
[root@master3 ~]# env | grep USER | cut -d '=' -f2
3.awk:分割命令,可以将文本中的内容通过指定的分隔符分割成若干列数据,默认的分隔符是空格。
语法:awk [-F ‘分隔符’] ‘{print $1 $2 ….}’ [文件名]
$0:代表原来的所有列
根据分区的使用情况,如果当前的分区/dev/sda1 使用量大于80%则输出,磁盘即将装满,否则打印空闲
1.查看分区的使用情况
[root@master ~]# df –h
2.过滤出分区/dev/sda1的使用情况
[root@master ~]# df -h | grep /dev/sda1
3.然后分割后获取第5列数据
[root@master ~]# df -h | grep /dev/sda1 | awk '{print $5}'
4.获取%前面的数字
[root@master ~]# df -h | grep /dev/sda1 | awk '{print $5}'|cut -d '%' -f1
5.substr进行数据的截取
[root@master ~]# head test1.txt | awk '{print substr($1,0,4)}'
#!/bin/bash
disk=`df -h | grep /dev/mapper/centos-root | awk '{print $5}'| cut -d '%' -f1`
if [ ${disk} -ge 80 ] ;then
echo "磁盘即将装满"
else
echo "磁盘空闲"
fi