百日筑基篇——Linux中文本工具应用(Linux入门六)

百日筑基篇——Linux中文本工具应用(Linux入门六)

文章目录

  • 前言
  • 一、文本搜索工具 **grep**
  • 二、流式文本处理工具 **sed**
  • 三、文本处理工具 **awk**
  • 总结


前言

在Linux中,通常会使用一些工具来处理文本以获得所需的内容。而Linux中的文本处理工具一般是grep 、sed 、awk这三个工具。


一、文本搜索工具 grep

用于在文件或标准输入输出中查找匹配指定模式的行
grep [选项] 模式 [文件名]

-v : 反向匹配,用来获得不匹配的行
-n : 显示匹配行以及行数
-i : 搜索时不区分大小写
-c : 统计匹配的行数
-o : 输出匹配的内容

grep -n "."命令用于在文本文件中查找非空行,并显示它们的行号
grep -E '正则表达式‘ 文件名 (或者使用 -e ,两者都支持正则表达式,但有一定区别)
请添加图片描述
通过grep工具查看当前目录下的满足匹配要求的文件
请添加图片描述
我通过使用grep 搜索工具来提取第一列和第二列都相同的行,或者使用-v来取反。

二、流式文本处理工具 sed

sed [选项] 内置命令符 [文件]

选项:
-n : 取消默认输出,常与内部命令P连用
-i : 直接修改文件内容,而不是输出到终端

内置命令符:
a : 追加文本,行后追加
d : 删除匹配行
i : 表示在指定行前插入文本内容
p : 表示打印匹配行的内容
s/A/B/g : 表示将文本中的A替换为B。

想要一次性替换单独的字符,可使用’y/ATCG/TAGC/':表示将文本中的ATCG分别替换为TAGC。如图中所示:
请添加图片描述

在这里插入图片描述

三、文本处理工具 awk

awk [选项] 动作模式 [文件]

-F : 指定分隔符
-V : 定义或修改一个内部变量

可以使用$NF来引用最后一列
请添加图片描述
awk 会根据空格和制表符,将每一行分成若干列,依次用 $1 、 $2
代表第一个列、第二列等等($0表示整行文本)
如图中所示,使用awk工具筛选出倒数第二列不为0的行,
awk工具还支持条件判断以及自定义函数。


总结

总的来说,grep一般用来搜索和筛选文本内容;sed用于编辑和修改文本文件;awk适用于更复杂的文本处理和计算任务,支持更高级的操作和脚本编写。这三个工具的使用可以相互结合,只要能满足需求就行。

林花谢了春红,太匆匆。

–2023-8-14 筑基篇

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

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

相关文章

安卓中常见的字节码指令介绍

问题背景 安卓开发过程中,经常要通过看一些java代码对应的字节码,来了解java代码编译后的运行机制,本文将通过一个简单的demo介绍一些基本的字节码指令。 问题分析 比如以下代码: public class test {public static void main…

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 目录 分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 2.代码说明:要求于Matlab 2021版及以上版本。 程序…

SpringBoot携带Jre绿色部署项目

文章目录 SpringBoot携带Jre绿色部署运行项目1. 实现步骤2. 自测项目文件目录及bat文件内容,截图如下:2-1 项目文件夹列表:2-2. bat内容 3. 扩展: 1.6-1.8版本的jdk下载 SpringBoot携带Jre绿色部署运行项目 说明: 实…

【JavaEE进阶】SpringBoot 配置文件

文章目录 SpringBoot配置文件1. 配置文件的作用2. 配置文件的格式3. properties 配置文件说明3.1 properties 基本语法3.2 读取配置文件3.3 properties 优缺点分析 4. yml配置文件说明4.1 yml 基本语法4.2 yml 配置读取 5. properties和yml的对比 SpringBoot配置文件 1. 配置文…

构建去中心化微服务集群,满足高可用性和高并发需求的实践指南!

随着互联网技术的不断发展,微服务架构已经成为了开发和部署应用程序的一种主流方式。然而,当应用程序需要满足高可用性和高并发需求时,单一中心化的微服务架构可能无法满足性能和可靠性的要求。因此,构建一个去中心化的微服务集群…

C语言刷题指南(一)

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 👍 收藏 ⭐留言 &am…

Unity智慧园区夜景制作

近期使用Unity做了一个智慧园区场景的demo,初步了解了3D开发的一些步骤和知识,以下为制作的步骤,比较简略,备忘: 1. 制作前的设计分析: 1. 分析日光角度,阴影长度,效果 2. 分析冷暖…

htmlCSS-----案例展示

目录 前言 作品效果 html代码 CSS代码 图片资源 前言 在学习html过程中我们要试着去写写一些案例,通过这些案例让我们更加熟悉代码以及丰富我们的经验,下面是我个人写的一个案例,代码和图片也给出了大家,你们可以参考参考。…

opencv进阶08-K 均值聚类cv2.kmeans()介绍及示例

K均值聚类是一种常用的无监督学习算法,用于将一组数据点分成不同的簇(clusters),以便数据点在同一簇内更相似,而不同簇之间差异较大。K均值聚类的目标是通过最小化数据点与所属簇中心之间的距离来形成簇。 当我们要预测…

深入学习SpringCloud Alibaba微服务架构,揭秘Nacos、Sentinel、Seata等核心技术,助力构建高效系统!

课程链接: 链接: https://pan.baidu.com/s/1hRN0R8VFcwjyCTWCEsz-8Q?pwdj6ej 提取码: j6ej 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍: 📚【第01阶段】课程简介:全…

空洞卷积学习笔记

文章目录 1. 扩张卷积的提出2. 理解的难点 本片博客的主题思路来自于这篇文章——如何理解Dilated Convolutions(空洞卷积),但是作者似乎是很久之前写的,文字的排版很混乱,自己来写一个新的。 1. 扩张卷积的提出 Multi-Scale Context Aggre…

win10在vmware16.2.3上安装macos13.1系统

第一步、安装vmware版本信息如下 第二步、下载unlocker426放到安装文件夹 第三步、管理员身份运行unlock.exe 第四步、运行vmware新建虚拟机 第五步、启动新创建的虚拟机macOS13.1并选择语言 第六步、选择磁盘工具抹掉格式化安装磁盘 第七步、格式化完成后退出磁盘工具 第八步、…