【Linux】高效文本处理命令

目录

一.sort命令(排序)

1.语法格式

2.常用选项

3.相关示例

3.1.

3.2.

二.unip命令(去重)

1.语法格式

2.常用选项

3.相关示例

3.1.

3.2.

三.tr命令(替换)

1.语法格式

2.常用选项

3.相关示例

3.1.

4.删除空行

方法1

方法2

补充:

1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)

方法1

方法2

2.对数组排序

四.cut命令(裁剪)

1.语法格式

2.常用选项

3.字符串分片 

3.1.

3.2.

3.3.

五.split命令(拆分)

1.语法格式

2.常用选项

3.拓展(面试题)

3.1.

3.2.

六.paste命令(合并)

1.语法格式

2.常用选项

3.补充(合并文件)

3.1.合并文件的行

3.2.合并文件的列

拓展:

eval命令(扫描)

相关示例


一.sort命令(排序)

  • 以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
  • 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

1.语法格式

sort [选项] 参数XXX | sort 选项

2.常用选项

-n按照数字的大小进行排序

-r

倒序排序(配合-n使用)
-u相当于下面的那个命令uniq,去重复的行(只保留一行重复内容)
-t指定字段的分隔符
-k指定排序的字段
-o<输出文件>另保存输出排序的结果(相当于重定向输出)
-f忽略大小写,把小写字母也当作大写字母看待
-b忽略每行前面的空格

3.相关示例

3.1.

sort -n
[root@localhost day15]# vim 1.txt
[root@localhost day15]# sort -n 1.txt
33
45
65
155 
353
545
888
9999
35653
65623
94545

3.2.

sort -n -r

二.unip命令(去重)

  • 用于报告或者忽略文件中连续的重复行,常与 sort 命令结合使用

1.语法格式

uniq [选项] 参数XXX | uniq 选项

2.常用选项

-c进行计数,并删除文件中重复出现的行
-u显示仅出现一次的行(包括不连续的重复行)
-d仅显示重复出现的行(必须是连续的重复行)

3.相关示例

3.1.

uniq  -c 

3.2.

uniq  -u

三.tr命令(替换)

  • 常用来对来自标准输入的字符进行替换、压缩和删除

1.语法格式

XXX | tr 选项 '参数1' ['参数2']

2.常用选项

-c保留字符集1的字符,其他字符包括换行符\n用字符集2替换
-d删除所有属于字符集1的字符
-s将连续重复的字符串压缩成一个
-t字符集2 替换 字符集1,不加选项效果相同

3.相关示例

3.1.

tr  -s

4.删除空行

方法1

cat 文件 | grep -v "^$"

方法2

cat 文件 | tr -s "\n"

补充:

1.Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)

方法1

cat 文件 | tr -d '\r' > 新文件

方法2

yum install -y dos2unix 

2.对数组排序

echo ${数组名[@]} | tr ' ' '\n' | sort -rn | tr '\n' ' '

四.cut命令(裁剪)

  • 对字段进行截取和剪裁

1.语法格式

cut [选项] 参数cat file | cut [选项] 参数 

2.常用选项

-d '分隔符' -f 字段序号根据 -d 指定的分隔符的截取显示 -f 指定的字段
--complement取反,不显示 -f 指定的字段
--output-delimiter '分隔符'指定输出的字段分隔符
 

3.字符串分片 

3.1.

echo ${变量:下标:长度}                       下标起始从0开始

3.2.

echo $变量 | cut -b 起始下标-终止下标         下标起始从1开始

3.3.

expr substr $变量 起始下标 长度              下标起始从1开始

五.split命令(拆分)

  • 用于在Linux下将大文件拆分为若干小文件

1.语法格式

split 选项 参数 原始文件 拆分后文件名前缀

2.常用选项

-l根据行数分割文件
-b根据大小分割文件
-d输出的目标文件后缀用数字替代
 

3.拓展(面试题)

3.1.

如何将一个10G文件分割为10个1G的文件

 split -b 1G -d 原文件  目标文件名前缀

3.2.

如何将一个100行文件分割为10个10行的文件

split -l 10 -d 原文件  目标文件名前缀

六.paste命令(合并)

  • 将多个文件按照列进行合并

1.语法格式

paste   [选项]    文件1     文件2

2.常用选项

-d '分隔符' 指定输出的字段分隔符
-s将每个列横向输出

3.补充(合并文件)

3.1.合并文件的行

cat 文件1 文件2  ... > 新文件

3.2.合并文件的列

paste -d '分隔符' 文件1 文件2 ... > 新文件

拓展:

eval命令(扫描)

  • 在命令行执行前,先将命令行里的变量置换成对应的值后,再执行命令

相关示例

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

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

相关文章

TiDB学习2:TiDB Sever

目录 1. TiDB Server架构 2. sql语句的解析和编译 2.1 Parse ​编辑 2.2 compile 3. 行转化为KV对(聚簇表) ​编辑4. SQL 读写相关模块 4.1 DistSQL(复杂查询) 4.2 KV(简单查询) 5. 在线DDL相关模块 6. GC机制与相关模块 7. TiDB Server的缓存 8. 热点小表缓存 9. …

做好串口控制是源代码防泄密的基础

在信息化时代&#xff0c;数据安全与保密工作的重要性日益凸显。尤其是在涉密单位&#xff0c;如军工、政府、金融等行业&#xff0c;防泄密工作直接关系到国家安全、社会稳定和企业利益。串口作为计算机与外部设备通信的重要接口&#xff0c;其安全性同样不容忽视。本文将探讨…

react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)

为什么添加了 memo &#xff0c;子组件2依然重新渲染了呢&#xff1f; 因为父组件向子组件2传递了引用类型的数据 const userInfo {name: "朝阳",};<Child2 userInfo{userInfo} />memo() 函数的本质是通过校验Props中数据的内存地址是否改变来决定组件是否重新…

TEMU电商行情分析:未来趋势与盈利机遇探讨

近年来&#xff0c;跨境电商行业风起云涌&#xff0c;其中TEMU作为新兴力量&#xff0c;其市场表现备受关注。那么&#xff0c;TEMU电商现在的行情究竟如何?对于卖家而言&#xff0c;是否仍然是一个能够赚钱的平台呢? 首先&#xff0c;从市场趋势来看 TEMU电商正处于一个快速…

vant添加列表, 日期选择总是填充到最后一个组内原因

添加多个行程, 无论在哪个行程上修改时间, 时间总是只显示在最后一个行程里 错误代码: <div class"journey"><divv-for"(item, index) in ruleform.hrms_business_item":key"index"><div class"journey-title">&l…

Linux之函数应用实例--加法器

一、创建一个对2个整数求和的加法器 首先&#xff0c;定义了一个名为 adder 的 Bash 函数&#xff0c;该函数接受两个参数 $1 和 $2 并输出它们的和。 function adder { echo $[ $1$2 ] } 注意&#xff1a; function 关键字是可选的。在 Bash 中&#xff0c;可以简单地使…

前端 JS 经典:数组去重万能方法

前言&#xff1a;只需要掌握这一个方法&#xff0c;就可以对有任何重复的数据数组&#xff0c;进行去重了。 可以自己思考下&#xff0c;怎么对以下对象数组去重&#xff1a; const arr [{ a: 1, b: 2 },{ b: 2, a: 1 },{ a: 1, b: 2, c: { a: 1, b: 2 } },{ b: 2, a: 1, c:…

Geotrust哪种通配符证书800

Geotrust是成立了几十年的CA认证机构&#xff0c;每年都会通过WebTrust审计&#xff0c;旗下拥有各种类型的SSL数字证书产品&#xff0c;例如单域名SSL证书、多域名SSL证书和通配符SSL证书等。而为了更好地区分SSL证书产品&#xff0c;Geotrust旗下还分了几个子品牌&#xff0c…

MySQL存储引擎介绍

查看MySQL数据库中创建表的信息 如上图所示&#xff0c;当我们使用命令show create table server_info\G;可以显示我们所创建的表的信息&#xff0c;只显示两个字段&#xff0c;第一个字段是Table 即是创建的表的名称&#xff0c;第二个字段是Create Table即是创建的表的字段的…

Redis过期删除策略和内存淘汰策略有什么区别?

Redis过期删除策略和内存淘汰策略有什么区别&#xff1f; 前言过期删除策略如何设置过期时间&#xff1f;如何判定 key 已过期了&#xff1f;过期删除策略有哪些&#xff1f;Redis 过期删除策略是什么&#xff1f; 内存淘汰策略如何设置 Redis 最大运行内存&#xff1f;Redis 内…

buildroot添加ssh功能

在制作了自己的buildroot生成的根文件系统之后&#xff0c;是没有ssh服务的&#xff0c;需要自行添加。 在buildroot的menuconfig里&#xff1a; Target packages -> Networking applications -> openssh 重新编译&#xff0c;还不能通过电脑连接&#xff0c;还需配置并…

react 图片没有加载出来的问题

react 图片没有加载出来的问题 我原来是这样写的 <Layout><Sider><imgsrc"../images/login/topdivbg20221202.png"/></Sider><Content><Menu onClick{onClick} selectedKeys{[current]} mode"horizontal" it…

如何进行事务处理

1、问题背景 在数据库存储系统中&#xff0c;事务处理是一种保证多个数据库操作作为单个逻辑单元执行的技术。事务处理可以确保数据的一致性、完整性和隔离性。 在使用 Google Cloud Datastore 时&#xff0c;可以使用 datastore.transaction() 函数来进行事务处理。datastor…

水离子雾化壁炉与会所房间的氛围搭配

水离子雾化壁炉在会所房间的氛围搭配可以为房间增添舒适、温馨和现代感&#xff0c;以下是一些建议&#xff1a; 主题定位&#xff1a; 根据会所房间的主题和定位选择合适的水离子雾化壁炉款式和设计风格。可以是现代简约、欧式古典或是豪华奢华&#xff0c;确保与房间整体风格…

富唯智能复合机器人:CNC铝块上下料安全新标准

在CNC铝块加工过程中&#xff0c;上下料环节的安全问题一直是企业关注的焦点。富唯智能复合机器人的应用&#xff0c;为这一环节树立了新的安全标准。 传统的上下料方式往往依赖于人工操作&#xff0c;存在着较大的安全隐患。而富唯智能复合机器人采用先进的视觉识别技术和精准…

本机搭建RabbitMQ

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、下载安装包&#xff0c;搭建过程 二、重要概念介绍 三、创建用户 方式一&#xff1a;命令行 方式二&#xff1a;管理后台 3.1 创建用户 3.2 分配权限 3.3 提…

2024/5/15 英语每日一段

Many pet owners are now turning to pet insurance policies to avoid higher vet bills should something bad happen unexpectedly. But Carlson said that preventive veterinary care—like vaccination, parasite control and weight management—is "the best way …

工作高效记事软件是什么 好用的高效记事软件

阳光斜洒在办公桌上&#xff0c;我埋头于一堆杂乱的文件中&#xff0c;头脑里充斥着各种待办事项。电话铃声突然响起&#xff0c;是老板打来的&#xff0c;提醒我下午三点有个重要会议。挂断电话后&#xff0c;我赶紧拿起笔想在便签上记下&#xff0c;却发现桌面已经被各种便签…

详解NodeJS事件循环

官网&#xff1a;node官网-事件循环 浏览器中的事件循环是由HTML规范来定义&#xff0c;之后由各浏览器厂商实现的&#xff0c;而node中的事件循环的定义与实现均由libuv引擎完成。 node使用chrome v8引擎作为js解释器&#xff0c;v8引擎分析代码后&#xff0c;主线程立即执行…