IT评测·应用市场-qidao123.com
标题:
[AIGC] awk 和 sed
[打印本页]
作者:
海哥
时间:
2024-7-15 15:48
标题:
[AIGC] awk 和 sed
在Unix体系中,有两种强盛的用于文本操作的命令工具,它们就是awk和sed。这两个命令工具是每个Linux用户必备的知识之一,尤其对于必要举行文本处理或数据抽取的开辟者来说,更加重要。
在现实开辟过程中,我们常常必要处理各种数据、日记、配置文件,而这些工作,awk和sed就能够起到事半功倍的结果。
Awk 和 Sed 简介
Awk 是一种编程语言,用于在linux/unix下对文本和数据举行处理。数据可以来自标准输入(stdin)、一个或多个文件,或者别的命令的输出。它支持用户自定义函数和动态正则表达式等强盛功能。
Sed(stream editor)是一种流编辑器,它是文本处理中非常中的工具,能够完善的配合正则表达式利用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,如许不断重复,直到文件全部的行处理完毕。因此,sed和管道(|)配合可以将数据举行加工,而和重定向配合可以把加工后的数据放到文件里。Sed可以处理磁盘文件里的数据,但它是把数据先读到内存中处理后,再屏幕上显示出来,而处理过程中,数据仍在磁盘文件里,而原来的文件内容并没有改变。
深入分析和掌握awk和sed
接下来我会写一篇详细的教程来深入学习和掌握awk和sed这两个强盛的文本处理工具,会针对初学者利用一些简单清楚的例子来讲解它们。看完我相信你对Awk和Sed会有一个全面深入的相识。
awk初探
Awk是一种编程语言,用于在unix/linux下对文本和数据举行处理。根据这篇文章,我们可以看到以下一些Awk命令的根本示例:
awk的根本语法
一样平常地,awk命令的格式如下:
awk 'pattern {action}' file(s)
复制代码
这里,awk从
file(s)中读取行,如果pattern
匹配,则执行
action
。
awk的工作原理
当awk命令运行时,它将会举行以下步骤:
从一或多个文件(或stdin)中读取记录(默认情况下,一个记录就是一行)。
对每一条记录,从头至尾测试是否匹配每个模式。如果记录符合某个模式,则执行该模式所关联的动作。
继承处理输入文件,直到全部读取完毕。
比方,以下命令对于文件(file.txt)中每一行,如果该行匹配到模式(“3”),则打印出该行:
awk '/3/ {print $0}' file.txt
复制代码
awk中的变量
Awk提供了很多内建变量来资助我们举行操作,详细可以参阅这篇文章。比方,以下命令可以打印出文件(file.txt)的总行数:
awk 'END {print NR}' file.txt
复制代码
其实固然,还有很多关于Awk的其他强盛功能,像是数组和内置函数等等,但这就不在这篇指南的讨论范围之内了。更深入的学习,我推荐你去阅读这本书。
当探索和利用sed(流编辑器)时,以下是一些您必要相识的根本概念和语法。
sed 初探
sed根本语法:
sed <options> '<command>' <file>
复制代码
其中,options是可选的,用于指定sed的一些选项;command是sed命令,用于指定要执行的操作;file是要处理的文件。
sed工作原理:
sed按行渐渐读取输入文件,对每一行应用指定的命令,并输出结果。默认情况下,sed将原始文件内容直接写回到标准输出,也可以通过重定向将输出保存到文件中。
sed 地址和地址范围
在sed命令中,可以利用地址或地址范围来定位要操作的行。地址可以是行号、正则表达式、以及特殊的模式空间标记(如$表示末了一行)。
sed 命令
sed提供了多个命令,用于执行各种操作,如查找更换、删除行、添加行等。常用的sed命令包罗:
s/pattern/replacement/:在每一行中查找匹配指定模式的内容,并更换为指定的内容。
d:删除匹配指定条件的行。
a:在指定条件的行后插入新行。
i:在指定条件的行前插入新行。
p:打印指定条件的行。
n:读取下一行,并从该行开始执行后续命令。
sed 应用实例
以下是一些sed的应用实例:
更换文件中的文本:
sed 's/old_text/new_text/' file.txt
复制代码
删除文件中的空行:
sed '/^$/d' file.txt
复制代码
在指定行前插入新行:
sed '3i new_line' file.txt
复制代码
打印文件的特定行:
sed -n '5p' file.txt
复制代码
这些只是sed的一些根本概念、语法和命令示例。sed具有非常强盛的功能和灵活性,您可以根据现实需求利用更多的sed命令和选项举行文本处理和编辑操作。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4