【Linux】常见截取命令sed、cut、awk

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值