Linux 命令之 cut -- 分割字符串,显示或删除指定字段的内容,合并文件内容

文章目录

  • 一、命令介绍
  • 二、常用选项
  • 三、命令示例
    • 根据指定的字节范围显示指定文件中的内容
    • 指定字段分隔符,显示指定字段的内容
    • 显示指定字段的内容
    • 根据指定的字符范围显示指定文件中的内容
    • 显示指定字段以外的字段的内容
    • 以指定的输出分隔符来分割输出内容中的字段
    • 合并多个文件的内容

一、命令介绍

命令 cut 可以用来分割字符串,显示指定范围的内容,可以具体根据指定的字节范围、字符范围、分割字段范围来显示文本内容。还可以合并多个文件的内容。

范围表达式说明
n-从第 n 个字节、字符、字段到结尾
n-m从第 n 个字节、字符、字段到第 m 个字节、字符、段,包括 n 和 m 在内
-m从第 1 个字节、字符、字段到第 m 个字节、字符、字段

二、常用选项

选项说明
-b以字节为单位,显示行中指定字节范围的字符
-c以字符为单位,显示行中指定字符范围的字符
-d指定字段的分隔符,默认的字段分隔符为制表符“TAB”。字段分隔符必须加引号,单引号或者双引号都可以,分隔符与选项 -d 之间允许有空格
-f显示指定字段的内容
-n-b 选项连用,不分割多字节字符
--output-delimiter=<STRING>指定输出的字段分隔符,分隔符和选项之间不允许有空格,分隔符可以不加引号,但是如果指定的分隔符是特殊符号必须加引号
--help显示指令的帮助信息
--version显示指令的版本信息
--complement用来排除指定范围的字符内容,实际的效果与单词 complement 的含义不一致,只能认为老外的理解力逆天了!

三、命令示例

根据指定的字节范围显示指定文件中的内容

文件 text.txt 的内容如下:

[root@htlwk0001host test]# cat text.txt
hello shell world!
dfdskklllllf
dfsfdsf
shell world
sdffdsfdsfd
dfsfdfdsfds
fsdfdsfdsfdsf
fdsfdsfdsfd

显示文件 text.txt 内容中每行的第 1 个到第 8 个字节的内容:

[root@htlwk0001host test]# cut -b1-8 text.txt
hello sh
dfdskkll
dfsfdsf
shell wo
sdffdsfd
dfsfdfds
fsdfdsfd
fdsfdsfd

注:-b 表示以字节为单位,显示行中指定字节范围的字符

显示文件 text.txt 内容中每行第 1 个字节和第 8 个字节的字符:

[root@htlwk0001host test]# cut -b1,8 text.txt
hh
dl
d
so
sd
ds
fd
fd

指定字段分隔符,显示指定字段的内容

其实就是自定义分隔符,将每行文本内容进行分割,然后选取分割后的某些字段的内容进行显示。

[root@linuxcool ~]# cat student2.txt 
No;Name;Mark;Percent 
01;tom;69;91 
02;jack;71;87 
03;alex;68;98 

指定分号 ; 作为分隔符,显示第 2 个字段的内容:

[root@linuxcool ~]# cut -f2 -d";" student2.txt 
Name 
tom 
jack 
alex 

注:字段分隔符,可以不加引号,分隔符与选项 -d 之间允许有空格。

显示指定字段的内容

默认字段分隔符是制表符 TAB,所以文本内容每个字段已经使用 TAB 分割,可以直接使用选项 -f 显示指定字段的内容:

[root@linuxcool ~]# cat student.txt 
No Name Mark Percent 
01 tom   69   91 
02 jack  71   87 
03 alex  68   98  

使用 -f 选项显示第 2 个字段的内容:

[root@linuxcool ~]# cut -f 2 student.txt 
Name
tom 
jack
alex 

显示第 2 个和第 3 个字段的内容:

[root@localhost text]# cut -f2,3 test.txt
Name Mark
tom 69
jack 71
alex 68

根据指定的字符范围显示指定文件中的内容

文件 test.txt 的内容如下所示:

[root@linuxcool ~]# cat test.txt 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 

显示第 1 个字符到第 3 个字符的内容:

[root@linuxcool ~]# cut -c1-3 test.txt 
abc 
abc 
abc 
abc 
abc 

显示每行前 2 个字符的内容:

[root@linuxcool ~]# cut -c-2 test.txt 
ab 
ab 
ab 
ab 
ab 

显示从第 5 个字符开始到结尾的内容:

[root@linuxcool ~]# cut -c5- test.txt 
efghijklmnopqrstuvwxyz 
efghijklmnopqrstuvwxyz 
efghijklmnopqrstuvwxyz 
efghijklmnopqrstuvwxyz 
efghijklmnopqrstuvwxyz 

显示指定字段以外的字段的内容

可以使用选项 --complement 提取指定字段之外的列,即打印除了第二列之外的列的内容:

[root@linuxcool ~]# cut -f2 --complement student.txt 
No Mark Percent 
01  69   91 
02  71   87 
03  68   98 

以指定的输出分隔符来分割输出内容中的字段

可以使用选项 --output-delimiter 来指定输出内容时的字段分隔符,例如,指定符合 # 作为输出的字段分隔符,如下所示:

[root@htlwk0001host test]# cut -d';' -f2,4 --output-delimiter='#' text2.txt
Name#Percent 
tom#91 
jack#87 
alex#98 

说明:
-d';' 表示在输入的数据流中,以分号 ; 作为字段分隔符对每行的文本内容进行分割,而 --output-delimiter='#' 表示在输出内容的时候,以 #作为字段的分隔符显示内容。

合并多个文件的内容

把文件 f1 和 f2 的内容合并起来,然后通过覆盖输出重定向符 > 将合并后的内容放入文件 f3 中,命令如下:

[root@htlwk0001host test]# cut f1 f2 > f3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 抛异常 jvm_邪恶的Java技巧使JVM忘记检查异常

java 抛异常 jvm我长期以来一直在批评Java中编译器检查异常的机制。 无论您是爱还是恨&#xff0c;都可以肯定一件事&#xff1a;在某些情况下&#xff0c;您不想与他们打交道。 Java中的解决方案是将一个检查后的异常包装在new RuntimeException(e)但这可以提供较长的堆栈跟踪…

java空文本_输出到文本文件,控制台为空-Java

首先,您必须创建一个从OutputStream接口继承的类以实现适配器模式(我不确定是否是adapter)那么您可以使用该类作为波纹管主要PrintStream finalStream;TreeOutputStream tos;PrintStream out;out new PrintStream("logs.txt");tos new TreeOutputStream();tos.add(…

Linux 组合命令/命令组合的符号

在 EX 命令中&#xff0c;竖直线 | 是命令的分割符&#xff0c;它允许用户把多个命令组合在一起执行Shell 命令使用分号 ; 组合命令

混合多云架构_使用混合多云每个人都应避免的3个陷阱(第4部分)

混合多云架构每天都在肆意宣传云&#xff0c;但每个人都应避免三个陷阱。 从云&#xff0c;混合云到混合多云&#xff0c;您都被告知这是确保业务数字化未来的一种方式。 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作。 让我们开始一段旅程&…

Linux 中常见的较为复杂的命令实例

文章目录 命令 find 和命令 grep 联合使用命令 find 和 命令 convert 联合使用命令 find 和命令 rm 联合使用命令 find 和命令 xargs 联合使用命令 sed 和目录 grep 联合使用命令 find 和命令 grep 联合使用 [root@htlwk0001host test]# find . -name "*.txt" -exec…

mysql 触发器 注意事项_MySQL触发器的利弊-使用MySQL触发器时应该注意的事项

在&#xff2d;ySQL中&#xff0c;触发器可以在你执行INSERT、UPDATE或DELETE的时候&#xff0c;执行一些特定的操作。在创建触发器时&#xff0c;可以指定是在执行SQL语句之前或是之后执行这些操作。通过触发器&#xff0c;你可以实现一些业务逻辑或一些数据限制&#xff0c;在…

混合多云架构_使用混合多云每个人都应避免的3个陷阱(第2部分)

混合多云架构如果您已经完全控制了本地数据中心&#xff0c;但又不能停止利用和支付过多的资源&#xff0c;那么如何期望防止这些成本转嫁到您的云策略中呢&#xff1f; 每天都在肆意宣传云&#xff0c;但每个人都应避免三个陷阱。 从云&#xff0c;混合云到混合多云&#xff0…

Linux 系统中用于在文件内查找指定的字符串的命令 -- grep/egrep/fgrep 的区别详解

文章目录一、命令介绍grepegrepfgrep二、正则表达式元字符扩展集三、POSIX 字符集一、命令介绍 grep 一种强大的文本搜索工具&#xff0c;用于在文件内查找指定的字符串&#xff0c;在不使用转义符的前提下支持基本的正则表达式来搜索文本&#xff0c;并把匹配的行打印出来。…

rest api封装调用_如何从云功能调用外部REST API

rest api封装调用在之前的博客文章中&#xff0c;我展示了如何创建您的第一个云功能 &#xff08;以及一个视频 &#xff09;。 您的云函数很可能需要调用外部REST API。 以下教程将向您展示如何创建此类功能&#xff08;非常简单&#xff09;。 登录到IBM Cloud帐户 点击目录…

SVN 版本控制的数据合并规则

文章目录自己的猜想文件名比对文本行比对事实是什么提交计划提交数据更新客户端版本库数据时&#xff0c;同名文件中文本行的数据比对规则自己的猜想 假设SVN服务端就存在一份最新版的文件 HF&#xff0c;客户端检出这份文件后再提交&#xff0c;当前用户提交的文件称为 NF。 …

java算术运算符的分类_6.Java算术运算符

1.算术运算符的分类:算术运算符:* :( 正数&#xff0c;加法 ,连接符)* 连接符: 如果数据和字符串连接一起就是用了"",那么""就成了连接符,拼接字符串* 任何数据与字符串使用连接符那么结果的数据类型都是字符串类型* 任何数据和数据相加就是做加法…

java项目教训_[免费电子书]分析超过600,000个Java项目的经验教训

java项目教训建立明智的错误处理工作流程需要什么&#xff1f; 调查和解决生产中的应用程序错误对于维持性能和可靠性至关重要。 但是&#xff0c;这并不意味着要花很多时间。 要理解为什么在生产中的故障排除&#xff0c;可这样的头痛&#xff0c;我们开始发现“真理”我们经…

MacOS 的软件包管理工具 MacPorts

MacPorts 就像 Homebrew 一样&#xff0c;可以管理 MacOS 的软件包&#xff0c;和 Linux 系统下的 apt-get、yum 一样。 官方网址&#xff1a;https://www.macports.org/index.php

java plus方法_Java.math.BigDecimal.plus()方法实例

全屏Java.math.BigDecimal.plus()方法实例java.math.BigDecimal.plus() 返回一个BigDecimal&#xff0c;其值是 (this)&#xff0c;并且其刻度为是 this.scale().这种方法&#xff0c;它只是返回此BigDecimal是包括对称性与一元减号方法negate()。声明以下是java.math.BigDecim…

java jdk设置字符集_使用JDK 11在Java字符串上的新方法

java jdk设置字符集Java的String类似乎将在JDK 11中获得一些新方法&#xff0c;该方法将于2018年9月发布。 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串::行 lines() “使用专用的分隔符从源字符串中懒散地提供行的字符串实例方法。” JDK-8200378 Stri…

MacOS 如何安装 SVN 命令终端

I purchased a new Mac running Mac OS X v10.8.5 (Mountain Lion). I’ve seen it written in various places that SVN is installed on OS X by default, but when I open a terminal and type which svn the program is not found. I’ve also run find / -name svn to che…

java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析

CMS简介系统基于租车业务场景而搭建的O2O服务平台&#xff0c;可为用户提供商务租车、接送机、旅游租车、企业租车、自驾租车、婚庆用车等自助租车服务。系统包含车辆库管理、门店管理、员工管理、司机管理、订单管理、活动管理、评价管理、财务管理、统计等。部署简介1、下载代…

docker jib_Jib –为Spring Boot应用程序构建docker映像

docker jib使用Jib为示例Spring Boot应用程序创建docker映像是如此容易&#xff0c;这让我感到惊喜。 让我首先将Jib与以前使用的方法进行对比。 我正在使用bmuschko出色的gradle-docker插件创建docker映像。 如果可以访问docker守护进程以及基于dockerfile或直接Dockerfile的…

如何在 MacOS 环境下搭建 SVN 服务端环境

文章目录在服务端创建资源仓库资源仓库访问权限配置给资源仓库添加用户配置用户组及用户的权限启动 SVN 服务器停止 SVN 服务器SVN 是一个使用十分广泛的开放源代码的版本控制系统。在 Windows 系统下&#xff0c;我们一般使用 TortoiseSVN 来搭建 SVN 环境。而 MacOS 系统我们…

java 飞行记录器_Java 11功能– Java飞行记录器

java 飞行记录器在本文中&#xff0c;我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分。之前&#xff0c;它是商业功能之一。 但是&#xff0c;对于带有JEP 328的 Java 11&#xff0c;它是开源的。 Java Flight Recorder将OS和JVM事件记录到一个文件中&#xf…