问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux 文本处理三剑客:grep、sed 和 awk

发布网友 发布时间:2024-10-02 06:31

我来回答

1个回答

热心网友 时间:2024-11-01 19:53

awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。它们在文本处理领域扮演着不同但互补的角色。其中,awk功能最为强大,但同时也最为复杂;grep则主要用于简单的文本查找和匹配,sed则更适合于编辑匹配到的文本;而awk则更擅长于格式化文本,尤其是进行较复杂的格式处理。

grep命令是Linux系统中的一种强大文本搜索工具,它能够使用正则表达式搜索文本,并将匹配的行打印出来。grep的全称是Global Regular Expression Print,即全局正则表达式打印。grep命令对于shell脚本的运用非常广泛,因为它能够通过返回状态值来表明搜索状态。例如,当搜索成功时,返回值为0;搜索失败时,返回值为1;如果搜索的文件不存在,则返回值为2。利用这些返回值,我们可以自动化处理文本。

grep命令的基本格式如下:

grep命令的常用参数包括:

例如,假设有一个名为test的文件,内容是从1到9,每个数字占据一行。我们可以使用以下命令来查找内容:

如果我们要找到7,并且希望在匹配到7之后输出后两行,可以使用以下命令:

对于文本文件test,如果我们要查找包含aaa的行数,可以使用grep -c命令,结果显示有两行包含aaa:

grep命令还可以实现多个匹配之间的逻辑“或”关系。例如,查找包含aaa或bbb的行,可以使用以下命令:

grep命令还可以将pattern视为固定字符串。例如,查找包含"aa*"的行时,使用grep -F命令:

使用grep命令时,我们也可以将后面这个文件的内容作为pattern。例如,创建一个名为grep.txt的文件,内容为"aa*",然后使用以下命令进行查找:

实际上,使用grep命令等同于直接使用grep 'aa*' test命令。

grep命令还支持忽略大小写,使用参数-grep -i --ignore-case。使用-n参数可以显示匹配的行号,-o参数仅显示匹配到的字符串,而-q参数则不打印匹配结果,但在使用if判断时非常有用。

grep命令还有-s参数,用于不显示错误信息。另一个常用参数是-v,用于显示未匹配到的行。例如,在查找线程时,可以使用grep命令去除自身:

grep命令的-w参数仅匹配整个单词,只在完整匹配到pattern时才匹配到。例如,查找单词aaa的结果为空,因为没有完整的aaa单词:

grep命令的高级用法,如正则表达式的高级应用,本文将不再深入探讨。

sed命令的作用是利用脚本来处理文本文件。其使用方法如下:

sed命令的参数说明:

动作说明:

为了测试sed命令,我们创建一个名为test的文件,内容如下:

使用sed命令进行操作,如在第三行后面追加新行:

然而,此操作只会更改文本,不会写入到文件中。要将结果写入文件,可以使用sed命令的写入功能。

sed命令还可以实现插入内容、删除内容和替换内容等功能,具体用法与grep命令类似,不再一一赘述。

awk命令是一个强大的文本分析工具,与grep的查找、sed的编辑功能相比,awk在数据分析和生成报告方面显得更为强大。awk的基本工作方式是逐行读取文件,并以默认空格为分隔符将每行切分为多个字段,然后进行各种分析和处理。

awk命令的语法如下:

awk命令的基本用法是awk动作文件名。例如,创建一个名为test的文件,内容如下:

使用awk命令打印每行的第一个和第四个单词:

可以清晰地看出awk命令输出每行的前两个和前四个单词。使用-F参数可以指定使用其他分隔符,如逗号或其他非空格字符。

awk命令还支持使用正则表达式进行匹配。例如,匹配以This开头的内容:

使用正则表达式匹配特定内容后,还可以取反匹配:

在文件中读取数据时,可以使用-f参数将awk脚本与文件名组合使用。

awk命令中包含许多内置变量,如$NF表示最后一个字段。此外,awk还提供了一些内置函数,方便对原始数据进行处理。条件判断是awk的一个重要特性,允许只输出符合条件的行。if语句结构则用于编写复杂的条件判断。

虽然本文已详细介绍了awk、grep和sed的使用方法,但这只是它们基础用法的概述。它们的高级用法和更多技巧可以在网上找到丰富的资源,包括特定的教程和参考文章。

参考文章:

SED 简明教程

Linux sed 命令

Linux awk 命令

awk 入门教程
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何理解“时间就是空间,空间就是时间”? 办公室副主任竞聘演讲稿范文 学校办公室主任竞聘演讲稿范文 最新办公室主任竞聘演讲稿 办公室主任竞聘演讲稿优秀范文 ...堆墨现象,墨线 接地和粘度都正常,请问应如何解决 ...都正常了开始喷印结果喷一条墨线好恐怖怎么解决呀各位老师 威力喷码机 求一份学生会演讲词 大学学生会个人优秀演讲稿 祛痘痘贴有哪些品牌推荐? 郑州宇通客车股份有限公司企业荣誉 郑州宇通为什么退出兰州宇通 兰州宇通客车有限公司企业简介 用手机挂QQ,挂一个小时要多少流量 手机挂QQ 24小时要多少流量 手机挂QQ,一小时不说话费多少流量? 用手机挂QQ一分钟大约费多少KB的流量啊、不聊天!的! 没开套餐 mp4故障处理 买房银行流水要求多少才能贷款 房贷银行流水不足怎么办 mp4 不知道怎么了 死机后就再也开不了了 用充电器 充电指示灯就是闪... 开通工行微信银行免密查询功能后,使用工行短信银行是否也不用输密码... 买房打印流水有什么要求 谁来帮帮我啊,我的MP4开不了机了 通过微信关注“中国工商银行电子银行”微信号后,如何设置默认操作卡... 买房流水有什么要求吗 如果MP4突然死机之后再也开不了机,除了拿去修,还能怎么办? 熊猫的外貌是怎样的呢? 关于喝茶的故事 漆包线∮0.69×19是什么意思 【Linux】三剑客 grep、awk、sed 常见用法 Linux 三剑客实例详解「grep、sed 、awk」 linux 文本处理(sed,awk,grep) ...人能看到新换头像,有的人却看不到新换头像为什么 内网搭建FTP,外部电脑不能访问 红花会团队介绍 追魂夺命剑小说人物 铃木电梯(深圳)有限公司公司简介 铃木铃木电梯公司简介 铃木电梯(深圳)有限公司企业概况 铃木电梯中国有限公司售后服务 铃木电梯有限公司服务理念 有哪些不踩雷的卫衣款式值得推荐? 铃木电梯(中国)有限公司怎么样 40岁孙俪又在家搞插花,短发配年味卫衣看似普通,却意外显年轻_百度知... 什么印花卫衣好看又不贵? 没装Office照样可以打开docxxlsxpptx文件 我刚刚被我的家猫抓了出了血要打疫苗吗 ...用的镜头是18-200的.我想知道怎样设置才能拍出最好的细节图... windows8系统里没有word怎么办电脑系统没有word怎么办