linux之cut的使用

article/2025/9/2 1:57:05

cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的

  • 其语法格式为:

    cut [-bn] [file] 或 cut [-c][file] 或 cut [-df] [file]
    

使用说明:

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定file参数,cut命令将读取标准输入,必须指定-b,-c或-f标志之一。

主要参数:

-b:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了-n标志。
-c:以字符为单位进行分割
-d:自定义分割符,默认为制表符。
-f:与-d一起使用,指定显示哪个区域
-n:取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的<br/>范围内,改字符将被写出;否则改字符将排除。
  • cut 一般以什么为依据呢?也就是说,我怎么告诉cut我想定位到剪切内容呢?

cut 命令主要是接收三个定位方法:

第一,	字节(bytes),用选项-b
第二,	字符(characters),用选项-c
第三,	域(fields),用选项-f
  • 以 “字节” 定位

    1) 执行 who 输出(内容如下)
    在这里插入图片描述
    2) 提取每行第4个字符

    who | cut -b 4
    

    在这里插入图片描述
    3) 提取每行1-4个字符,和第10个字符可以这样写(-b 支持1-4的写法)

    who | cut -b 1-4,10
    

    在这里插入图片描述

但有一点要注意,cut命令如果使用了-b选项,那么执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取。可不能颠倒定位的顺序哦。这个例子就可以说明这个问题:

 who | cut -b 10,1-4

在这里插入图片描述
#已经自动做了排序

4) 省略截取范围的小技巧

提取每行1-4个字符,可以写出 -4 默认是重1开始

who | cut -b -4

在这里插入图片描述

提取每行从第5个字符后面的所有字符,可以写成 5-

who | cut -b 5-

在这里插入图片描述

如果是写出 -1,1- 这样的形式代表的是以整行, 数字可以是任意。

who | cut -b -1,1-

在这里插入图片描述

  • 以字符为定位标志的例子
    在这里插入图片描述
    这个尝试一下用字节来截取看看

      cut -b 3 cut_ch.txt
    

    在这里插入图片描述
    #这里没有输出,及时输出了也是乱码;原因是一个中文占4个字节,使用1-4可以输出第一个文字

      cut -b 1-4 cut_ch.txt
    

    在这里插入图片描述

    使用字符来截取第3个文字

      cut -c 3 cut_ch.txt
    

    在这里插入图片描述
    #使用字符的方式,就可以成功截取了

字符可以正常处理字节也可以处理字符

可以使用 -nb 来处理字符,-n 用于告诉cut不要将多字节字符拆开;个人认为其实 -nb 就等于
-c 因为字符可以处理字节也可以处理字符

cut -nb 1-4 cut_ch.txt

在这里插入图片描述

  • 域(下面来解释一下域)

为什么会有“域”的提取呢,因为刚才提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息则束手无策。这时候“域”就派上用场了。如果你观察过/etc/passwd文件,你会发现,它并不像who的输出信息那样具有固定格式,而是比较零散的排放。但是,冒号在这个文件的每一行中都起到了非常重要的作用,冒号用来隔开每一个项。

我们很幸运,cut命令提供了这样的提取方式,具体的说就是设置“间隔符”,再设置“提取第几个域”,就OK了!

以/etc/passwd的前五行内容为例:
在这里插入图片描述

cat /etc/passwd | head -5 | cut -d : -f 1

在这里插入图片描述

#这个解释一下参数;-d 是用来设置间隔符,-f 是设置我要取的域。

在设定-f时,也可以使用例如3-5或者4- 类似的格式

cat /etc/passwd|head -n 5|cut -d : -f 1,3-5

在这里插入图片描述

cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7

在这里插入图片描述

cat /etc/passwd|head -n 5|cut -d : -f -2

在这里插入图片描述

  • 如果遇到制表符和空格,如何分辨。
    有时候制表符确实很难分辨,有一个办法可以看出一段空格到底是由若干个空格组的还是由一个制表符组成的。

在这里插入图片描述

sed -n l tab_space.txt	

在这里插入图片描述
**#如果是制表符(tab),那么会显示为\t 符号,如果是空格,就会原样显示,通过此方法即可以判断制表符和空格了。

如果你设定一个空格位间隔符,那么可以这样写:

cat tab_space.txt |cut -d ' ' -f 1

在这里插入图片描述
#第一行都是tab

  • cut 的缺陷和不足

在处理多空格时,如果文件里面的某些域是由若干个空格来间隔的,那么用cut就有点麻烦了,因为cut只擅长处理“以一个字符间隔”的文本内容


http://chatgpt.dhexx.cn/article/AWkSfWmN.shtml

相关文章

图像分割之(三)从Graph Cut到Grab Cut

图像分割之&#xff08;三&#xff09;从Graph Cut到Grab Cut zouxy09qq.com http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解&#xff0c;而现在我们聊到的GrabCut是对其的改进版&#xff0c;是迭代的Graph Cut。OpenCV中的GrabCut算法是依据《"GrabCut&qu…

shell中cut用法简介

shell中的cut命令 (2010-03-30 17:05:31) 转载▼ 标签&#xff1a; shell cut 杂谈 分类&#xff1a; shell cut是以每一行为一个处理对象的&#xff0c;这种机制和sed是一样的。&#xff08;关于sed的入门文章将在近期发布&#xff09; 2 cut一般以什么为依据呢? 也就是说&a…

Linux-cut

cut命令介绍 cut命令将文件的每一行剪切字节&#xff0c;字符和字段&#xff0c;并将这些字节&#xff0c;字符和字段写到标准输出 提取列&#xff0c;cut命令不能提取空格&#xff0c;可以是制表符或者其他字符 cut [选项][文件] 选项&#xff1a; -b&#xff1a;以字节为单…

Linux字符截取命令-cut

概述 cut是一个选取命令&#xff0c;。一般来说&#xff0c;选取信息通常是针对“行”来进行分析的&#xff0c;并不是整篇信息分析的。 语法 cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、…

反掩码的作用是什么?通配符掩码的作用是什么?—Vecloud

反掩码即路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围&#xff0c;跟子网掩码刚好相反。 它像子网掩码告诉路由器IP地址的哪一位属于网络号一样&#xff0c;通配符掩码告诉路由器为了判断出匹配&#xff0c;它需要检查IP地址中的多少位。这个地址掩码对使我们…

反掩码和通配符,傻傻分不清

网络掩码 网络掩码&#xff0c;大家很熟悉。格式跟 IP 地址一样&#xff0c;是 32 位的二进制数&#xff0c;网络部分用 1 表示&#xff0c;主机部分用 0 表示&#xff0c;和 IP 地址同时使用才有意义。 我们可以发现&#xff0c;网络掩码是由 1 和 0 组成&#xff0c;而且 1 …

彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区

1.子网掩码&#xff08;IP subnet mask&#xff09; 用途&#xff1a;标识一个IP地址的网络位&#xff0c;主机位 网络设备判断目的IP跟自己是否同一网段的依据。 特点&#xff1a;1和0绝对不可能间隔&#xff0c;1总在0的前面。 网络通信角度&#xff0c;子网掩码只具有本地…

反掩码和通配符,傻傻分不清?

网络掩码 网络掩码&#xff0c;大家很熟悉。格式跟 IP 地址一样&#xff0c;是 32 位的二进制数&#xff0c;网络部分用 1 表示&#xff0c;主机部分用 0 表示&#xff0c;和 IP 地址同时使用才有意义。 我们可以发现&#xff0c;网络掩码是由 1 和 0 组成&#xff0c;而且 1 …

通配符及反掩码的详解 (网络中ACL )

在我们学习ACL中&#xff0c;在搞懂ACL的同时也要搞定通配符掩码&#xff08;wildcard mask&#xff09;。说简单点&#xff0c;通配符掩码就是0为绝对匹配&#xff0c;必须严格匹配才行&#xff0c;而1为任意&#xff0c;从某种意义上讲&#xff0c;如果一个8位上有一个1字符&…

反掩码与通配符掩码

掩码我们学数通的应该都很熟悉&#xff0c;我们刚刚学习IP的时候肯定都学过&#xff0c;这里就不在叙述。 今天我们要说的是反掩码和通配符掩码&#xff0c;反掩码相信大家也都不陌生&#xff0c;我们配置OSPF的时候都能用的到但是很多网工也就知道配置OSPF就要那么配置&#x…

掩码、通配符与反掩码

掩码 采用按位与运算&#xff0c;计算一个ip地址的网络号0 & 0 0  1 & 0 0  即&#xff1a;x & 0 00 & 1 0  1 & 1 1  即&#xff1a;x & 1 xip地址的结构 网络号 主机号若要得到网络号&#xff0c;掩码的结构必然为前面是连续的1&am…

ACL 通配符掩码 匹配的范围计算及理解

例题 access-list 120 permit ip 10.0.0.0 0.0.0.191 any 这条ACL看似简单&#xff0c;却又复杂&#xff0c;因为正常我们见到的通配符掩码都是诸如0.0.0.255&#xff08;255.255.255.0&#xff09;/0.0.255.255&#xff08;255.255.0.0&#xff09;/0.0.0.127&#xff08;255…

UDF和GenericUDF区别

目录 UDF GenericUDF Java开发转了大数据&#xff0c;竟然被拉去做了非结构的ETL抽取&#xff0c;真的是比做后端伤脑筋&#xff0c;没有可借鉴的框架&#xff0c;只能根据数据进行抽取,第一份大数据实习&#xff0c;写完抽取代码后&#xff0c;需要写成UDF和UDTF进行使用。 …

URDF教程

创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件&#xff0c;不用担心维度等的问题。创建一个my_robot.urdf文件&#xff0c;…

UDF 提权

肚子难受了两天&#xff0c;躺了两天 关于 UDF &#xff0c;我当时第一想到的是 sqlmap 里的 -os-shell 这两者之间又有怎么样的区别&#xff1f; 经过我查了一番资料 UDF 全称为 User Defined Functions ,翻译过来就是用户可自定义函数. UDF 适用于只知道root 账户密码&a…

MySQL UDF 提权

概述 UDF 全称 User Defind Function&#xff08;用户自定义函数&#xff09;&#xff0c;用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能&#xff0c;其添加的新函数都可以在 SQL 语句中调用&#xff0c;就像调用本机函数 version () 一样方便。 UDF 提权是通过这…

udf提权

udf提权 什么是udf udf “user defined function”,即‘用户自定义函数’。是通过添加新函数&#xff0c;对MYSQL的功能进行扩充&#xff0c;性质就像使用本地MYSQL函数如abs()或concat()。udf在mysql5.1以后的版本中&#xff0c;存在于’mysql/lib/plugin’目录下&#xff…

URDF

Solidworks模型转化为URDF文件格式三连杆机械臂示例逆运动学 https://blog.csdn.net/gpeng832/article/details/73917487 关于SolidWorks导出URDF模型的总结 https://blog.csdn.net/mt_lixinzeng/article/details/80268572 Rviz: RobotModel --Status: Error :如果关节是活动…

Mysql之UDF提权

前言 mysql提权的几种方式 udf提权&#xff08;常用&#xff09;mof提权开机启动脚本&#xff08;启动项提权&#xff09; 提权目的&#xff1a;mysql权限 —> 操作系统权限 UDF提权 有时候我们通过一些方式获取了目标主机mysql的用户名和密码&#xff0c;并且可以远程连…

UDAF和UDF的介绍

目录 UDF介绍 UDAF简介 关于UDAF的一个误区 使用UDF 在SQL语句中使用UDF 直接对列应用UDF&#xff08;脱离sql&#xff09; UDAF使用 继承UserDefinedAggregateFunction 继承Aggregator UDF介绍 UDF&#xff08;User Define Function&#xff09;&#xff0c;即用户自…