【学习篇】Linux中grep、sed、awk

news2024/10/5 23:27:24

Linux 文本处理三剑客 – awk, sed, grep

grep过滤文本

https://zhuanlan.zhihu.com/p/561445240

grep 是 Linux/Unix 系统中的一个命令行工具,用于从文件中搜索文本或字符串。grep 代表全局正则表达式打印。当我们使用指定字符串运行 grep 命令时,如果匹配,则它将显示包含该字符串的所在行,而不修改现有文件的内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sed修改文本

参考链接:https://blog.csdn.net/qq_43773590/article/details/119711444
https://blog.csdn.net/m0_59388634/article/details/122047377

sed编辑器被称作流编辑器。流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。

sed 命令的命令格式是这样的:
$ sed command file
其中,command 部分是 sed 命令的精髓,对 command 部分的掌握程度决定了你是不是 sed 高手。

command 部分可以分为两块知识:一块是范围设定,一块是动作处理。

范围设定,可以采用两种不同的方式来表达:
指定行数:比如‘3,5’表示第 3、第 4 和第 5行;而‘5,$’表示第 5 行至文件最后一行。
模式匹配:比如/ ^ [^dD]/表示匹配行首不是以 d 或 D 开头的行。

而动作处理部分,会提供很丰富的动作供你选择,下面就来介绍几个最常用的动作吧:
d:表示删除行。
p:打印该行。
r:读取指定文件的内容。
w:写入指定文件。
a:在下面插入新行新内容。

sed的常用编辑命令
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,整行替换
d :删除,删除指定行delete,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,字符串替换,通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
=:输出行号
r:将文件的内容读入 read
w:将文本写入文件 write

awk处理文本

https://blog.csdn.net/Dark_Tk/article/details/114844529

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。

sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“与”、“||”表示“或”、“!”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

命令格式
awk 选项 ‘模式或条件 {操作}’ 文件 1 文件 2 …
awk -f 脚本文件 文件 1 文件 2 …

参考链接:https://zhuanlan.zhihu.com/p/51771974

awk ‘{pattern + action}’ {filenames}
尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。

awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

awk常见的内建变量
FS:列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
NF:当前处理的行的字段个数。
NR:当前处理的行的行号(序数)。
$0:当前处理的行的整行内容。
$n:当前处理行的第n个字段(第n列)。
FILENAME:被处理的文件名。
RS:行分隔符。awk从文件上读取资料时,将根据RS的定义把读取的资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’

awk中同时提供了print和printf两种打印输出的函数。

其中print函数的参数可以是变量、数值或者字符串。字符串必须用双引号引用,参数用逗号分隔。如果没有逗号,参数就串联在一起而无法区分。这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。

printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

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

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

相关文章

VMware安装windows操作系统

一、下载镜像包 地址:镜像包地址。 找到需要的版本下载镜像包。 二、安装 打开VMware新建虚拟机,选择用镜像文件。将下载的镜像包加载进去即可。

(Matalb回归预测)GA-BP遗传算法优化BP神经网络的多维回归预测

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、部分代码: 四、分享本文全部代码数据说明手册: 一、程序及算法内容介绍: 基本内容: 本代码基于M…

如何在 Web 应用程序中查找端点?

如何在 Web 应用程序中查找端点? 这篇文章主要讲述了如何在网络应用中找到端点。以下是文章的主要要点: 端点是网络服务的访问地址,通过引用这个URL,客户可以访问服务提供的操作。端点提供了寻址Web服务端点所需的信息。 HTTP消息是服务器和客户端之间交换数据的方式,包…

2023年c语言程序设计大赛

7-1 这是一道送分题 为了让更多的同学参与程序设计中来,这里给同学们一个送分题,让各位感受一下程序设计的魅力,并祝贺各位同学在本次比赛中取得好成绩。 注:各位同学只需将输入样例里的代码复制到右侧编译器,然后直…

电子作业指导书系统如何提高作业人员的培训效率和作业规范

在现代制造业中,提高生产效率和产品质量是企业不断追求的目标。而对于车间员工来说,如何提高生产培训效率和作业规范是一个重要的问题。电子作业指导书系统作为一种新型的生产管理工具,可以有效提高车间员工的生产培训效率和作业规范。本文将…

maven 将Jar包安装到本地仓库

window系统: 注意事项:在windows中,使用mvn指令将jar安装到本地仓库时,一定要将相关资源使用“"”包裹上,不然会报下面的错: mvn install:install-file "-DfileD:\BaiduNetdiskDownload\qianzixi…

全球服的游戏服务器架构设计

全球服的游戏服务器架构设计 版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资料见文末 主题 常见服务器端架构划分 不同类型游戏的架构选择与瓶颈 如何设计通用、可伸缩的…

python 爬百度热搜并生成词云

1、爬取百度body存入txt def get_baidu_hot():url "https://top.baidu.com/board?tabrealtime"headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&…

定制手机套餐---python序列

if __name__ __main__:print("定制手机套餐")print("")#定义电话时长:字典callTimeOptions{1:0分钟,2:50分钟,3:100分钟,4:300分钟,5:不限量}keyinput("请输入电话时长的选择编号:")valuecallTimeOptions.get(key)if val…

看完就会,从抓包到接口测试的全过程解析【1500字保姆级教程】

一、为什么抓包 1、从功能测试角度 通过抓包查看隐藏字段 Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面…

中国上市公司漂绿程度及其同构指数(多种测算方法,2012-2022年)

数据简介:20 世纪 90 年代开始,国际上关于绿色市场和绿色管理的学术文献日渐丰富,众多企业积极响应碳排放政策的号召,但其中有多少企业是实实在在的进行碳减排技术创新,又有多少企业打着绿色低碳行为的口号来吸引眼球、…

举个栗子!Quick BI 技巧(4):创建面积图

面积图又叫区域图,是在折线图的基础之上形成的, 它将折线图中折线与自变量坐标轴之间的区域使用颜色或者纹理填充,这样一个填充区域我们叫做面积,颜色的填充也可以更好的突出趋势信息。 有数据粉好奇如何使用 Quick BI 来制作面积图&#xf…

CAD图纸管理软件是否支持自定义属性?

CAD图纸管理软件是否支持自定义属性? 彩虹图纸管理软件_图纸管理系统_图纸文档管理软件系统_彩虹EDM【官网】 CAD图纸管理软件 是一种专业用于管理CAD图纸的工具,它可以帮助用户更加方便地管理、分类和检索自己的CAD图纸。在这个软件中,自定…

沃趣班11月月考题目解析

沃趣班11月月考题目解析 1.在oracle中创建用户时,若未设置default tablespace关键字,则oracle将哪个表空间分配给用户作为默认表空间 答案:D.user SQL> create user mytest identified by 123456; SQL> grant connect to mytest; SQL…

【开源】基于Vue和SpringBoot的独居老人物资配送系统

项目编号: S 045 ,文末获取源码。 \color{red}{项目编号:S045,文末获取源码。} 项目编号:S045,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4…

色彩 (3)AWB问题

#灵感# AWB 的问题,说难其实也不是很难。 前提: 对于特定的光信号输入,设备的输出信号取决于RGB三通道的频率响应,不同的sensor频率响应一般是不同的。QE曲线描述的就是图像传感器的光电转换效率. 1、灰区设置 标定用标准光源灯…

应用场景丨隧道健康监测系统建设,提高隧道的应急措施

在繁忙的城市交通中,隧道作为重要的枢纽,每天承载着大量的车流和人流。然而,隧道内部的环境和结构状况往往难以掌握,给交通安全带来了潜在的隐患。为了解决这一问题,建立隧道健康监测系统势在必行。 根据《交通运输部关…

【Unity入门】碰撞检测

碰撞器由来 1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消该组件。 2.在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非…

pcr扩增原理中的变性 退火 延申扩增

一、PCR简介 聚合酶链式反应(PCR)是一种用于放大扩增特定的DNA片段的分子生物学技术,它可看作是生物体外的特殊DNA复制,PCR的最大特点是能将微量的DNA大幅增加。 二、PCR原理 1.背景 DNA的半保留复制是生物进化和传代的重要途…

PHP众筹系统源码+支持报名众筹+商品众筹+无偿众筹+市面上所有的众筹模式 附带完整的搭建教程

大家好啊,罗峰今天来给大家分好用的源码系统了。今天要给大家分享的是一款PHP众筹系统源码。众筹作为一种新型的融资方式,逐渐在市场上占据了重要的地位。从公益众筹到商品众筹,再到股权众筹,各种众筹模式层出不穷。然而&#xff…