Linux文件管理知识:文本处理

上篇文章详细介绍了Linux系统中查找文件的工具或者命令程序的相关操作内容介绍。那么,今天呢,这篇文章围绕Linux系统中文本处理来阐述。

众所周知,所有Linux操作系统都离不开一个核心原则,那就是它是由很多种文件组成的,那么,Linux系统的任何操作就离不开文本文件的处理。所以,它有很多命令工具用来处理文本的。在这篇文章中我们主要介绍下用于文本格式化输出及其它常用的命令工具。

常见的命令工具如下:

命令(工具)名称

描述

cat

用于连接文件并且打印到标准输出

sort

用于给文本行排序

uniq

用于报告或者省略重复行

cut

用于从每行中删除文本区域

paste

用于合并文件文本行

join

用于基于某个共享字段来联合两个文件的文本行

comm

用于逐行比较两个有序的文件

diff

用于逐行比较文件

patch

用于给原始文件打补丁

tr

用于翻译或删除字符

sed

用于筛选和转换文本的流编辑器

aspell

用于交互式拼写检查器

接下来,我们先回顾下Linux系统文本处理工具。

Linux文本处理工具

说到Linux文本处理工具或者程序,我相信大家首先提到就是vim了。是的,没错!但是文本还可以用来做什么呢?这个值得大家思考!

在这里列举一些用途:

  • 通过纯文本格式形式编写文档;
  • 另一种文本文档格式就是网页,目前最常见的就是通过超文本标记语言HTML或可扩展的标记语言XML作为标记语言来实现的;
  • 基于文本的电子邮件email;
  • 纯文本格式格式化输出;
  • 软件开发里的程序源码;.

cat-A命令程序

cat-A命令程序,可将文本非打印字符(比如说控制字符tab、空格、回车字符等)显示出来。

实例1:

第一步:创建测试文件或者实例

[root@linuxprobe ~]$ cat > test1.txt

The food is delicious.     

[root@linuxprobe ~]$

备注:

创建测试文件test1.txt,输入cat命令指定了用于重定向输出的文件test1.txt,随后输入文本内容“ The food is delicious.  ”,最后回车Enter 键;使用Ctrl+D组合键指示cat命令。

需要注意的是测试文件test1.txt文本内容的开头和末尾分别使用了一个tab 字符以及一些空格。

第二步:刚刚创建的测试文件test1.txt文本内容通过cat-A命令显示出来:

[root@linuxprobe ~]$ cat -A test1.txt

^IThe food is delicious.. $

[root@linuxprobe ~]$

结论:

在输出的显示结果中我们可以分析:

文本中的tab 字符由ˆI 字符来显示出来。

文本末尾的空格由$ 字符来显示出来。

实例2:

第一步:创建测试文件或者实例

[root@linuxprobe ~]$ cat > test2.txt

It tastes delicious,

and makes one run at the mouth.     

[root@linuxprobe ~]$

[root@linuxprobe ~]$ cat -ns test2.txt      //-n:给文本行添加行号

-s:禁止输出多个空白行

1 It tastes delicious,

2

3 and makes one run at the mouth.

[root@linuxprobe ~]$

备注:

重新创建了一个新的测试文件test2.txt,其文本内容为It tastes delicious,

and makes one run at the mouth.并由两个空白行区分开。经过cat -ns命令程序执行处理(给文本行添加行号,并将禁止输出多个空白行输出)输出显示出来。

sort命令程序

sort 命令程序针对指定的文本内容或命令行中指定的一个或多个内容进行排序,并将排序结果标准输出显示出来。

sort 程序来处理标准输入实例:

[root@linuxprobe ~]$ sort test3.txt

2

3

1

[root@linuxprobe ~]$ ccat test3.txt

将test1.txt test2.txt test3.txt三个文本文件合并为一个有序的文件sorted _test_list.txt。

Sort命令程序的常见选项参数如下表: 

选项

长选项

描述

-b

--ignore-leading-blanks

默认情况下,对整行进行排序,从每行的第一个字符开始。这个选项导致sort 程序忽略每行开头的空格,从第一个非空白字符开始排序。

-f

--ignore-case

让排序不区分大小写。

-n

--numeric-sort

基于字符串的数值来排序。使用此选项允许根据数字值执行排序,而不是字母值。

-r

--reverse

按相反顺序排序。结果按照降序排列,而不是升序。

-k

--key=field1[,field2]

对从field1 到field2 之间的字符排序,而不是整个文本行。看下面的讨论。

-m

--merge

把每个参数看作是一个预先排好序的文件。把多个文件合并成一个排好序的文件,而没有执行额外的排序。

-o

--output=file

把排好序的输出结果发送到文件,而不是标准输出。

-t

--field-separator=char

定义域分隔字符。默认情况下,域由空格或制表符分隔。

这篇文章主要介绍了cat及sort命令程序,它们是如何被用来执行文本处理操作的。

Linux系统知识博大精深,所以我在此强烈建议大家可以参考下《linux就该这么学》这本书,对于linux系统文本处理层面的介绍很详细!那么关于Linux系统中文本处理命令的操作及运用介绍先告一段落了,后期文章会一一补发。

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

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

相关文章

如何在在线Excel文档中对数据进行统计

本次我们将用zOffice表格的公式与数据透视表分析样例(三个班级的学生成绩)。zOffice表格内置了大量和Excel相同的统计公式,可以进行各种常见的统计分析,如平均值、标准差、相关性等。同时,zOffice也有数据透视表功能&a…

棋牌室电脑计时灯控,棋牌室计时灯控安装,佳易王计时计费管理系统软件

棋牌室电脑计时灯控,棋牌室计时灯控安装,佳易王计时计费管理系统软件 棋牌室的灯可以用佳易王计时计费软件来控制开关,当开始计时的时候,软件发送开灯的指令,灯打开,在结账后,软件发送关灯指令…

抖音小店销售转化率提升:10个实用策略和技巧

抖音小店是一种在抖音平台上进行销售的电商模式,通过短视频和直播等方式向用户推销商品。而销售转化率则是衡量用户进行购买行为的比率,是评估抖音小店运营效果的重要指标。以下是四川不若与众一些提高抖音小店销售转化率的策略和技巧。 1.优化商品展示&…

Unity3d C#实现编辑器不运行状态下执行的脚本

第一章方式: 函数前面 [ContextMenu("Play")] ,Inspector面板右键调用 第二种方式: OnValidate() ,值改变自动执行 using UnityEngine; using System.Linq;public class NightController : MonoBehaviour {pub…

HTML的表单标签和无语义标签的讲解

HTML的表单标签 表单是让用户输入信息的重要途径, 分成两个部分: 表单域: 包含表单元素的区域. 重点是 form 标签. 表单控件: 输入框, 提交按钮等. 重点是 input 标签 form 标签 使用form进行前后端交互.把页面上,用户进行的操作/输入提交到服务器上 input 标签 有很多形态,能…

kubernetes集群编排——k8s资源监控

资源限制 上传镜像 [rootk8s2 limit]# vim limit.yaml apiVersion: v1 kind: Pod metadata:name: memory-demo spec:containers:- name: memory-demoimage: stressargs:- --vm- "1"- --vm-bytes- 200Mresources:requests:memory: 50Milimits:memory: 100Mi [rootk8s2…

【Git】Git基础命令操作速记

【Git】Git基础命令操作速记 文章目录 【Git】Git基础命令操作速记1. 初始化1.1 设置用户名和邮箱1.2 初始化仓库 2. 基础命令2.1 add和commit2.2 reset2.3 查看日志2.4 删除/找回本地仓库文件2.5 找回暂存区文件2.6 diff命令(找不同) 3. 分支命令3.1 查看分支3.2 创建分支3.3 …

Win10笔记本开热点后电脑断网的解决方法

在Win10笔记本电脑中用户可以随时打开热点,但是发现热点开启后电脑就会断网,网络不稳定就会影响到用户的正常使用。下面小编给大家介绍两种简单的解决方法,解决后用户在Win10笔记本电脑开热点就不会有断网的问题出现了。 具体解决方法如下&am…

python poetry的教程

Poetry Python世界中,Poetry是一个近年来备受瞩目的工具,它为开发者提供了一个灵活且强大的依赖管理解决方案。Poetry可以帮助开发者管理项目的依赖关系,同时提供了一系列的工具和功能,使开发者能够更轻松地创建和管理复杂的项目。…

零基础产品经理如何迅速学习Axure原型制作?快速上手攻略!

如果Adobe xd是一个简单易用的UI设计软件,那么Axure应该是一个强大的原型软件。Axure不仅可以制作静态界面原型,还可以在此基础上增加交互效果。虽然Axure的功能比较复杂,但在学习和掌握之后,可以完美实现产品经理心目中的原型体验…

多个电商平台搜索接口是否能聚合使用?

作为一名技术爱好者,我们总会遇到各种各样的技术问题,需要寻找合适的技术解决方案。而在互联网时代,我们可以快速通过搜索引擎获取丰富的技术资源和解决方案。然而,在不同的技术分享中,我们常常会遇到质量参差不齐的文…

【2021研电赛】基于深度学习的蛋白质与化合物结合性质预测

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取! 获奖情况:三等奖 1.作品简介 针对药物发现过程中的药物筛选问题,本设计基于深度学习提出新的神经网络结构和数据处理方式用于预测蛋白质与化合物之…

将请求映射到servlet的规则

参考资源 详情可以参考:https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0.html#mapping-requests-to-servlets URL路径的使用 web容器接收到客户端的请求,决定转发给哪个web应用。被选中的web 应用必须具有最长的上下文&…

Node.js中的child_process模块的作用

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

搭载紫光展锐V510平台 移远通信RG500U-EA 5G模组获全球首个GCF认证

近日,搭载紫光展锐V510平台的移远通信工规级5G模组RG500U-EA顺利通过GCF认证,成为全球首款通过该认证的基于紫光展锐平台的5G模组。 GCF认证是一种国际性的产品一致性认证,该认证的通过,表明搭载紫光展锐V510的终端产品可满足不同…

计网----数据库(一)

计网----数据库(一) 一.什么是数据库 数据库是”按照数据结构来组织、存储和管理数据的仓库“。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 二.数据库的特点 1.规范化的本地存储 2.加密 3.共享 三.数据库的好处…

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

本文介绍->给大家推荐一下我的时间序列预测实战专栏,本专栏平均质量分98分,而且本专栏目前免费阅读。其中涉及机器学习、深度学习、融合模型、个人创新模型、数据分析等一系列有关时间序列的内容,其中的实战案例不仅有简单的模型类似于机器…

【面经】如何查看服务器内存和磁盘空间占用

查看服务器内存占用 free -g查看服务器磁盘空间占用 df -h

精进·第1篇:分享一个3年战略规划框架思路

首发:麦子禾咨询 作者:石头 正如解决问题的思路不止一个,做战略规划的思路、框架、模型,石头认为,肯定也不止华为类的业务领先模型BLM、业务战略执行力模型BEM、从战略规划到战略执行DSTE流程,以及轻量级…