cut命令小结

article/2025/9/27 12:03:06

基本功能

cut是一个很简单的命令,但是却是很实用的一个linux命令。

cut将输入流以行为单位,以一定的条件切割,最后将结果打印在标准输出(stdout)。输入流一般是一个文件名,当没有指定文件名或者直接指定"-"时表明直接从标准输入(stdin)中取流。


语法格式

cut的语法格式极其简单:

                          cut OPTION [FILE]                           

那么重点就是掌握以及记忆cut命令的OPTION了。

首先我们需要了解cut命令操作输入流的模式有哪些。很简单,就两种模式,一个是字节模式(byte mode),一个是域模式(field mode)。

根据这两种模式,我将cut命令的OPTION分为3组。

第一组:

-b,--bytes=LIST

-c,--characters=LIST

第二组:

-d,--delimiter=DELIM 指定DELIM为分隔符(注意只能是单个字符),而不是默认的TAB

-f,--fields=LIST   默认包括不含分隔符的行

-s,--only-delimited 表示不包括那些不含分隔符的行,用于去掉注释或者标题一类的信息

第三组:

--complement 反向输出结果

--output-delimiter=STRING 使用STRING为输出的分隔符,而不是默认的输入分隔符


好了,为什么我要这么分组呢?理由是这样的:

第一组对应字节模式。-b和-c其实都是对应字节模式。网上有文章说它俩在处理中文时有区别,我觉得是不正确的,可能与字符编码有关系吧,目前我不得而知。

第二组对应域模式。通过-d来自定义指定DELIM来切割文本,并且通过-f指定最终输出哪些field。而选项-s只能在域模式中使用,也就是说字节模式下不能使用-s选项。

第三组是通用选项,跟处理模式没有关系,也就是说两种模式下都可以使用。


OK,到了这里,我们知道cut处理输入流有两种模式,每一次只能使用其中的一个模式。

你可能注意到上面的三个LIST我特定标注为红色。关于LIST的指定方式是cut命令灵活性的一个体现。这里直接截图man文档中的。


N: 只取第N项(从1开始计数)

N-:取第N项一直到最后

N-M:取第N项到第M项

-M:取第1项到第M项


实际例子

现在通过实际的例子来记忆上述选项。这里通过打印PATH环境变量为例!

[11:03:09@astrol:~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


(1)选取第3个路径

[10:59:05@astrol:~]# echo $PATH | cut -d ':' -f3
/usr/sbin

(2)选取从第3个路径开始所有的路径

[11:00:20@astrol:~]# echo $PATH | cut -d ':' -f3-
/usr/sbin:/usr/bin:/sbin:/bin

(3)选取第3到第5个路径

[11:00:58@astrol:~]# echo $PATH | cut -d ':' -f3-5
/usr/sbin:/usr/bin:/sbin

(4)选取从第1个到第4个路径

[11:01:31@astrol:~]# echo $PATH | cut -d ':' -f-4
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

(5)选取第1个和第3个路径

[11:02:24@astrol:~]# echo $PATH | cut -d ':' -f1,3
/usr/local/sbin:/usr/sbin

(6)选取第1个到第3个路径,还有第5个路径

[11:02:50@astrol:~]# echo $PATH | cut -d ':' -f1-3,5
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin

(7)选取除第3个路径的所有路径

[11:05:39@astrol:~]# echo $PATH | cut -d ':' -f3 --complement
/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/bin

(8)改变分隔符为@

[11:06:14@astrol:~]# echo $PATH | cut -d ':' -f1- --output-delimiter='@'
/usr/local/sbin@/usr/local/bin@/usr/sbin@/usr/bin@/sbin@/bin


这里的例子都是域模式,其实字节模式一样的,在这里就不举例了。

本文完毕!



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

相关文章

linux命令之cut命令

一、命令介绍 Linux cut命令将行按指定的分隔符分割成多列。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。cut分隔符必须是单个字符。 二、使…

linux cut 命令,Linux cut命令的用法介绍

Linux cut命令用于根据字段提取文件内容。文本文件没有像数据库那样的行/列,有时我们只需要单列数据。根据分隔符剪切已识别的列(例如:冒号:,分号;,逗号,等)。 对于下面示例,我们采用/etc/passw…

shell编程之 cut命令详解

cut命令是我们在shell编程中常用的一个命令:在这里记录一下它的用法: 如下:提取第二列;第二and第三列:注意文本中的每列之间 使用tab制表符 不能使用空格进行分隔,否则无法正确提取 -f :指定提取的列数 -d :指定文件中的分隔符,默认的分隔符是tab制表符 例如:cut -d &qu…

【cut命令】

cut命令的基本使用 1、命令参数说明2、根据指定范围,输出字符3、输出指定范围之外的内容4、指定分割符,并输出指定位置字段 1、命令参数说明 命令参数作用-b按byte字节分割-c按字符分割-d指定分隔符, 默认为“TAB”制表符-f显示指定位置的字…

Linux cut命令详解

1.命令介绍 cut命令 – 按列提取文件内容 cut命令的功能是用于按列提取文件内容。cut是可以根据指定的关键词信息,针对特定的列内容进行过滤。 语法格式: cut [参数] 文件 常用参数: -c 以字符为单位进行分割 -b 以字节为单位…

cut命令 -d -f

https://blog.csdn.net/u011700318/article/details/38554581?utm_sourcedistribute.pc_relevant.none-task https://blog.csdn.net/RHEL_admin/article/details/37508101?ops_request_misc%7B%22request%5Fid%22%3A%22158217786119725211963913%22%2C%22scm%22%3A%22201407…

C语言产生随机数并写入文件中

在C语言中&#xff0c;我们一般使用 <stdlib.h> 头文件中的 rand() 和srand()函数来生成随机数&#xff0c;如果要保证每次产生的随机数不重复&#xff0c;需要在每次产生随机序列前&#xff0c;先指定不同的种子&#xff0c;这样计算出来的随机序列就不会完全相同了。可…

c语言对于随机数的产生于应用,c语言之产生随机数详解

在编程中,我们经常需要用到各种随机数,下面我来简单谈谈随机数产生机理。 原理:产生随机机数的原理是计算机根据一个值(一般称作随机种子),然后把这个值作为参数,在经过一系列的公式运算计算出一个值,这个值就是随机数。简单来说,就像 一个关于我们的数学函数,给定它一…

c语言产生随机数不变怎么办,用C语言产生随机数。怎么办?

满意答案 axhbl 2013.01.15 采纳率&#xff1a;42% 等级&#xff1a;2 已帮助&#xff1a;29986人 "#include #include #include #define SIZE 100 void main() { int numbers[SIZE]; int i, j; srand(time(NULL)); for (i 0; i < SIZE; i) { numbers[i] rand(…

MPP 技术简述,Hadoop 与 MPPDB 的区别

精选30云产品&#xff0c;助力企业轻松上云&#xff01;>>> 整理 OLAP 引擎的时候&#xff0c;遇到了 MPP &#xff0c;所以再次总结一下。 1、 什么是MPP&#xff1f; MPP (Massively Parallel Processing)&#xff0c;即大规模并行处理&#xff0c;在数据库非共享…

MPP DB 是 大数据实时分析系统 未来的选择吗?

大数据领域&#xff0c;实时分析系统&#xff08;在线查询&#xff09;是最常见的一种场景&#xff0c;前面写了一个《实时分析系统(HIVE/HBASE/IMPALA)浅析》讨论业界当前常见的方案。互联网公司用得比较多是HIVE/HBASE&#xff0c;如腾讯基于HIVE深度定制改造&#xff0c;改名…

MPPDB分布式结构化数据库

1.MPPDB简介 MPP&#xff0c;它是一款 Shared Nothing 架构的分布式并行数据库集群&#xff0c;具备高性能、高可用、高扩展特性&#xff0c;可以为超大规模数据管理提供高性价比的通用计算平台&#xff0c;并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统。 2.MPPDB…

mppdbLibra

1&#xff1a;三种数据库架构、特征、应用 数据库架构中shared-nothing等三个之间的优缺点&#xff09; 1.shared-everything 一般是针对单个主机&#xff0c;完全透明共享CPU/MEMORY/IO&#xff0c;并行处理能力是最差的&#xff0c;典型的代表是SMP技术 2.Shared-Disk&#…

MPPDB集群高可用设计

目录 1. 前言 2. 内核端高可用设计 2.1 GTM高可用 2.2 CN高可用 2.3 DN高可用 2.3.1 主、备、从高可用设计 2.3.2 数据复制 3. 集群管理端高可用设计 3.1 CMserver高可用 3.2 CMagent高可用 1. 前言 MPPDB集群服务组件主要分为内核端和集群管理端&#xff0c;内核端主要包括…

java JButton计算器布局

java JFrame大体框架 this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //窗体退出关闭程序 this.frame.setVisible(true); //该框架显示 this.frame new JFrame(“簡易計算器”); // 该面板的名字 this.frame.setLocation(100,100); //最初该面板定位 this.frame.…

java jbutton 省略号_JButton显示省略号

我正在尝试使用Swing库在Java中设置GUI。我创建了一个自定义按钮类&#xff0c;它具有自定义初始化程序&#xff0c;使事情变得更容易。它在下面&#xff1a; public class JTButton extends JButton { char type; public JTButton(String title, ActionListener listener, cha…

java jbutton_Java JButton按钮使用

/** *JButton按钮按键 * */ package com.swing; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JFrame; class jbutton extends JFrame{ private JButton btn1,btn2,btn3,btn4,btn5; public static void main(String[] args){ jbutton jbnew …

JButton

JButton()&#xff1a;设置一个没有文本图案的按钮 JButton(String text):创建一个带文本的按钮 getContentPane().add(组件) package apiapi;import javax.swing.*;public class api {public static void main(String[] args) {JFrame framenew JFrame();frame.setTitle(&q…

java按钮组件(JButton、JCheckBox)

按钮在Swing中是比较常见的组件&#xff0c;用于触发特定动作&#xff0c;Swing中提供多种按钮组件&#xff0c;如按钮、单选按钮、复选框等&#xff0c;这些按钮都是从AbstractButton类中继承而来的&#xff0c;下面将讲解这些按钮的应用。 1.JButton按钮组件 Swing中的按钮…

JButton部分常用的方法

本篇文章将会教会大家JButton常用的使用方法 JButton是Swing的组件所以需要导入包 import javax.swing.*;1创建JButton //创建JButton JButton jButton new JButton(); //将JButton添加到面板里 jPanel.add(jButton);2设置JButton大小以及坐标 //设置JButton大小 jButton.…