本文介绍: 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据查找内容,而 action 是在找到匹配内容时所执行的一系列命令sed是Linux下一款功能强大的非交互流式文本编辑器,可以文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件编辑这里,逗号的作用与输出文件的分隔符的作用是一样的,只是后者是空格而已。awk有3个不同版本: awk、nawkgawk,未作特别说明,一般指gawkgawk 是 AWK 的 GNU 版本

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、nawkgawk,未作特别说明,一般指gawkgawk 是 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中同时提供了printprintf两种打印输出函数

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

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

原文地址:https://blog.csdn.net/Logintern09/article/details/134516057

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7517.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注