shell编程-字符截取命令-cut命令

前言

  • grep是在文本当中提取字符串,其实也是一个字符提取命令,除了grep之外,字符截取命令还有这些主要cut、printf、awk、sed,printf是awk当中需要用到的一个命令。跟grep有什么区别那?
  • grep的作用是在文件中提取符合条件的行。那谁来提取列那???这个是由cut、awk、sed命令来实现。

1. cut命令

命令: cut [选项] 文件名
选项: -f 列号 提取第几列
           -d 分隔符:按照指定分隔符分割列
举个栗子:

  • (1)先做一个表格,然后进行实验
    在这里插入图片描述
    在这里插入图片描述

但是这个命令在程序中有什么作用那??? cut命令需要跟grep命令结合使用才可以达到效果。
在我的服务器中批量添加了100个普通用户。想提取这些普通用户的用户名,用来批量删除。

  • (2)想写一个shell脚本,想把这个100个普通用户删掉。要用脚本实现的话,最主要的目标,提取出来这个用户的名字。所有的系统用户的登录权限(shell)都是/sbin/nologin取反不包含由root的行,只要不含root就列出。
    在这里插入图片描述
    然后把这个命令的结果赋给变量,用循环的方式一个一个删除这个用户即可。cut一般配合grep和管道符来使用。

再举个栗子:

  • (1)用脚本来判断这个根分区的使用率,如果这个使用率超过80%。然后报警,告诉管理员你的硬盘快沾满了需要手工清楚。
    在这里插入图片描述
    在这里插入图片描述
    说明: 这个实验cut没有完成,这个地方就体现出了cut的局限性。请看下面的分析。

2. cut命令的局限

  • 命令: df -h | cut -d " " -f 1,3
  • 说明: 在使用cut的时候,要么是制表符,要么由具体符号的,比如冒号cut只能解决单个字符分割的,如果以多个空格作为分隔符,这个是时候需要使用更加复杂的命令awk,awk原要比cut复杂。如果cut能够实现的,比如提取的列是用制表符、逗号、冒号分开的,用cut更简单。 但是cut不能完成的切割,比如说空格,这时候在考虑awk。有的时候都不说awk命令都说awk编程。它里面可以实现,流程控制,实现条件判断,变量赋予。这个是编程的独立语言,使用起来会比较难,是和grep配合,提取出来相对应的字串,在程序当中使用

3. 总结

  • 使用cut的时候一般与grep配合使用。cut有自己的局限性,如果只是一个分隔符分隔这个还可以处理,但是要是多个空格分开,cut就不能解决了,这时就要使用awk来解决这个问题了。

猜你喜欢

转载自blog.csdn.net/weixin_46818279/article/details/107511388