一,cut命令的用途

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

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

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

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

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

二,查看cut命令所属的包

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

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

可以用dnf安装

[root@blog ~]$ dnf install coreutils

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

1,查看版本

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

2,查看帮助

[root@blog ~]$ cut --help

3,查看手册

[root@blog ~]$ man cut

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

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

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

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

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

类似的还有:

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

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

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

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

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

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

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

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

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

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

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

也等同于

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6,其他参数:

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

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

五,查看centos的版本

[root@blog nginxlogs]$ cat /etc/redhat-release
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. C enum(枚举)

    C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读. 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……}; 接下来我们举个例子,比如:一星期有 ...

  2. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings)-课程笔记

    第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings) 2.1 词汇表征(Word Representation) 词汇表示,目 ...

  3. [LeetCode]534. 游戏玩法分析 III(Mysql)

    题目 Table: Activity +--------------+---------+ | Column Name | Type | +--------------+---------+ | pl ...

  4. docker 搭建私有云仓库

    docker搭建私有仓库   registry私有仓库 下载docker-distribution软件包 yum install epel-release yum install docker-dis ...

  5. vue大型项目高性能优化----想说爱你真的不容易

    一.背景   目前公司的电子合同采用表单设计器+合同业务配合实现,做了半年多后终于上线,但是下边员工普遍反映卡顿,甚至卡死,爆栈.尤其是新增和修改合同页面,因为这部分数据量大,逻辑复杂,很容易崩溃,所 ...

  6. 360 Atlas生产环境使用心得

    一.Atlas介绍 Atlas是360开源的一个Mysql Proxy,以下是官方介绍: Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 ...

  7. Spring学习(四)IOC详解

    一.简介 概念:控制反转是一种通过描述(在 Java 中可以是 XML 或者注解)并通过第三方(Spring)去产生或获取特定对象的方式.(被动创建) 优势: ① 降低对象之间的耦合 ② 我们不需要理 ...

  8. 使用IDEA远程调试SpringBoot程序

    远程调试就是服务端程序运行在一台远程服务器上,我们在本地服务端的代码中设置断点(本地的代码必须与远端一致),进行调试.每当有请求到达远程服务器时能够在本地知道远端程序的运行情况. 1.点击Run 选择 ...

  9. 性能测试Jmeter安装

    一. Jmeter下载地址: http://jmeter.apache.org/download_jmeter.cgi   二. JDK下载地址: https://www.oracle.com/tec ...

  10. 使用implicitly demo

    泛型:  Context Bounds // //定义一个隐式值, 这个值不能少, 要不找不到比较的对象 implicit val personCompartor = new Ordering[Per ...