一,cut命令的用途

从一个文本文件或者文本流中提取文本列

分别用: 字节、字符、字段 作为单位进行提取

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看cut命令所属的包

  1. [root@blog ~]$ whereis cut
  2. cut: /usr/bin/cut /usr/share/man/man1/cut.1.gz /usr/share/man/man1p/cut.1p.gz
  3.  
  4. [root@blog ~]$ rpm -qf /usr/bin/cut
  5. coreutils-8.30-6.el8.x86_64

如果提示找不到命令或命令被误删除,

可以用dnf安装

  1. [root@blog ~]$ dnf install coreutils

三,查看cut命令的版本和帮助

1,查看版本

  1. [root@blog ~]$ cut --version
  2. cut (GNU coreutils) 8.30
  3. Copyright (C) 2018 Free Software Foundation, Inc.
  4. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
  5. This is free software: you are free to change and redistribute it.
  6. There is NO WARRANTY, to the extent permitted by law.
  7.  
  8. Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

2,查看帮助

  1. [root@blog ~]$ cut --help

3,查看手册

  1. [root@blog ~]$ man cut

四,cut命令在运维中的使用例子:

1,显示nginx日志中所有的ip

# -d:指定分隔字段的分隔符,默认的分隔符是tab

#-f: 指定显示第几个字段

  1. [root@blog nginxlogs]$ cut -d ' ' -f 1 file_meet.access_log
  2. 106.15.200.123
  3. 47.101.200.88
  4. ...

类似的还有:

第7列是url(使用空格作分隔符)

  1. [root@blog nginxlogs]$ cut -d ' ' -f 7 file_meet.access_log
  2. /
  3. /web2/images/h4.png
  4. /web2/images/h10.png
  5. ...

用双引号做分隔符,第6列是user agent

  1. [root@blog nginxlogs]$ cut -d '"' -f 6 file_meet.access_log | more
  2. Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
  3. Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0
  4. ...

2,列出所有有权登录bash的用户

# -d:指定分隔字段的分隔符,默认的分隔符是tab

#-f: 指定显示第几个字段

  1. [root@blog ~]$ grep '/bin/bash' /etc/passwd | cut -d ':' -f 1,7
  2. root:/bin/bash
  3. webop:/bin/bash

说明:上面的命令效果等同于:

#--complement:  显示-f指定字段以外的其他字段

  1. [root@blog ~]$ grep '/bin/bash' /etc/passwd | cut -d ':' -f 2,3,4,5,6 --complement

也等同于

  1. [root@blog ~]$ grep '/bin/bash' /etc/passwd | cut -d ':' -f 2-6 --complement

3,打印每个分区和使用的占比

#sed '1d' :去掉第一行的表头

#tr -s:--squeeze-repeats:缩减连续重复的字符成指定的单个字符

  1. [root@blog ~]$ df -h | sed '1d' | tr -s ' ' | cut -d ' ' -f 1,5
  2. devtmpfs 0%
  3. tmpfs 0%
  4. tmpfs 1%
  5. tmpfs 0%
  6. /dev/vda1 15%
  7. /dev/vdb1 1%
  8. tmpfs 0%

说明:df 命令输出的部分空格较多,数量不一致,

我们用tr做一下压缩,这样方便cut读取

4,打印每个分区和使用的占比,字段之间用-分隔

#--output-delimiter='-' 输出时的分隔符也可以指定

#tr -d '%'   去掉百分比符号

  1. [root@blog ~]$ df -h | sed '1d' | tr -s ' ' | cut -d ' ' -f 1,5 --output-delimiter='-' | tr -d '%'
  2. devtmpfs-0
  3. tmpfs-0
  4. tmpfs-1
  5. tmpfs-0
  6. /dev/vda1-15
  7. /dev/vdb1-1
  8. tmpfs-0

5,用cut截取每行的前5个字符

#-c:截取指定位置的字符

  1. [root@blog ~]$ cut -c1-5 /etc/passwd

6,其他参数:

-s:--only-delimited 不包含分隔符的行直接不显示 ( do not print lines not containing delimiters)

-b: 以字节为单位进行分割

五,查看centos的版本

  1. [root@blog nginxlogs]$ cat /etc/redhat-release
  2. CentOS Linux release 8.0.1905 (Core)

linux(centos8):用cut显示文本内容的指定列的更多相关文章

  1. linux(centos8):用sort对文本内容排序

    一,sort的用途 1,作用: sort命令用于将文本文件内容加以排序. 它能够以行为单位来排序 2,sort常与uniq搭配使用,原因: 用uniq命令去重时, 需要相同的每行位置相邻才能生效, 所 ...

  2. shell脚本--显示文本内容

    shell脚本显示文本内容及相关的常用命令有cat.more.less.head.tail.nl 首先是cat,cat最常用的就是一次性显示文件的所有内容,如果一个文件的内容很多的话,那么就不是很方便 ...

  3. linux下批量查找/替换文本内容

    一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令: 1.批量查找某个目下文 ...

  4. linux实用小命令--查看文本内容

    一.cat命令 $ cat [参数]filename 这还有一些可以和cat命令一起用的参数,可能对你有所帮助. 1.-n 参数会所有的行加上行号: $ cat -n test1 2.这个功能在检查脚 ...

  5. Linux基础命令---tail显示文本

    tail 显示文本文件尾部的部分内容,默认显示最后10行. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法         ...

  6. linux(centos8):用uniq去除文本中重复的行(去重)

    一,uniq命令的用途 1, 作用: 从输入文件或标准输入中找到相邻的匹配行, 并写入到输出文件或标准输出 2, 使用时通常会搭配sort使用 说明:刘宏缔的架构森林是一个专注架构的博客,地址:htt ...

  7. Linux sed命令实现替换文本内容

    /root/data/code-s3201/publish_codex/deploy/db.properties db.properties中的 1.0.0.6 替换为 1.0.0.7 sed -i ...

  8. 深入学习jQuery描述文本内容的3个方法

    × 目录 [1]html() [2]text() [3]val()[4]总结 前面的话 在javascript中,描述元素内容有5个属性,分别是innerHTML.outerHTML.innerTex ...

  9. 设置UILabel可变高度(根据文本内容自动适应高度)

    @property(nonatomic)UILabel *showLabel;   // 计算文本所占高度,计算出来之后设置label的高度 // 第一个参数:字体大小,字体大小/样式影响计算字体的高 ...

随机推荐

  1. 如何入门Pytorch之四:搭建神经网络训练MNIST

    上一节我们学习了Pytorch优化网络的基本方法,本节我们将以MNIST数据集为例,通过搭建一个完整的神经网络,来加深对Pytorch的理解. 一.数据集 MNIST是一个非常经典的数据集,下载链接: ...

  2. [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点

    题目一 题目 O(1)时间复杂度删除给定链表节点. 题解 用待删除节点后一个节点的值覆盖待删除节点值,更新链接关系. 注意链表只有一个节点:删除尾结点:删除头节点的处理. 代码 class ListN ...

  3. Linq To EF 用泛型时生成的Sql会查询全表的问题

    1.问题的现象 public class LinqHepler<T> where T:class { private EFDBContext _context = null; /// &l ...

  4. Linux下日志文件过大解决方案

    很多Linux服务器里的应用程序都是无间断的输出日志,这对于服务器的硬盘是一个很大的考验.良许之前也分享过一篇文章,介绍如何让应用程序在后台执行: linux后台执行命令:&与nohup的用法 ...

  5. turtle空间坐标系

    利用空间坐标改变行进 以海龟的角度来看,无论往那个方向运行,都叫正方向 turtle.fd向海龟的正前方运行,turtle.bk向反方向运行

  6. Golang的Context介绍及其源码分析

    简介 在Go服务中,对于每个请求,都会起一个协程去处理.在处理协程中,也会起很多协程去访问资源,比如数据库,比如RPC,这些协程还需要访问请求维度的一些信息比如说请求方的身份,授权信息等等.当一个请求 ...

  7. J.U.C之Executor框架入门指引

    1.Executor接口 This interface provides a way of decoupling task submission from the mechanics of how e ...

  8. dubbo学习(一)认识dubbo

    一.发展背景 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.此时,用于简化增删改查工作量的数据访问框架(ORM)是关键. 垂直应用架构 当访问量逐渐增大, ...

  9. Java随谈(二)对空指针异常的碎碎念

    本文适合对 Java 空指针痛彻心扉的人阅读,推荐阅读时间25分钟. 若有一些Java8 函数式编程的基础可以当成对基础知识的巩固. 一.万恶的null 今天,我们简单谈谈null的问题.因为null ...

  10. 原创-公司项目部署交付环境预检查shell脚本

    大型项目环境预检查脚本,根据自己实际情况修改脚本中变量,给大家一个思路~ #!/usr/bin/env bash root=$( cd $(dirname $0) pwd ) source " ...