Linux笔记丨三剑客是谁?grep、sed、awk

简介: Linux笔记丨三剑客是谁?grep、sed、awk

今天分享的学习笔记内容是Linux三剑客,包括grep、sed、awk命令的基础知识,以及一些正则表达式相关内容。

正则表达式是对字符串和特殊字符操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个规则的文本,sed、awk、grep命令能够实现这种功能。


文本搜索grep函数

grep是一个文本搜索工具,支持正则表达式,能够把匹配的行显示出来。egrep是扩展版支持更多元字符,笔记里提到的为grep。语法格式如下:

grep '条件' file.name -x(参数)

命令常见参数选项(-x):

  • i:忽略大小写
  • v:输出反转结果
  • x:精确匹配整行内容
  • -color:高亮显示匹配行
  • n:输出同时显示行号
  • c:计算符合样式的行数
  • q:不显示任何信息

简单示例

grep '^abc' xx.txt
输出以abc开头的行
grep '[0-9]' xx.txt
输出包含数字的行
grep '^$' xx.txt
输出空行
grep 'xyz$' xx.txt
输出以xyz结尾的行
grep 'a*c' xx.txt
输出a开头c结尾的行

文本处理awk函数

awk最基本的功能是基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息。通常,awk是以文件的一行为处理单位。语法格式如下:

awk '{pattern + action}'{filenames}
awk 'BEGIN{OFS=FS="\t"}{print $0, $1;}' filename
awk 'BEGIN{OFS=FS="\t"}ARGIND==1{print $0, $1;}ARGIND==2{print $0;}' file1 file2

awk运算符:awk内置变量:

常见参数解释

  • OFS:输出时列分隔符
  • FS:输入时列分隔符
  • $0:第一行
  • $1\$2\$NF:第一列、第二列、最后一列
  • NF:总列数
  • NR:总行数
  • FNR:当前读取了多少行
  • F:指定分隔符

实例演示

  • 输出20到30行的内容
awk '{if(NR>=20 && NR<=30) print $1}' test.txt

文本替换sed函数

sed一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。这样不断重复,直到文件末尾。

  • 语法格式为:
sed [-nefri等参数] ‘command’ 输入文本 
sed -i 's/被替换的内容/要替换成的内容/' file
sed 's/被替换的内容/要替换成的内容/g' file > file.out
  • n∶安静模式。只有经过sed 特殊处理的那一行才会被列出来。
  • e∶直接在指令列模式上进行 sed 的动作编辑;
  • f∶直接将 sed 的动作写在一个档案内,
  • r∶sed 延伸型正则表示法的语法。(预设是基础正则表示法语法)
  • i∶直接修改读取的档案内容,而不是输出。

实例展示

删除文件第3行
sed '3d' xxx.txt
删除文件最后一行
sed "$d" xxx.txt
删除空格
sed ’s/^[ ]*//g’ xxx.txt
替换:把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
sed 's/test/mytest/g' xxx.txt
添加新行(向前)
sed ‘s/pattern/&\n/g’ filename
在最后一行插入字符
sed -i ‘$ a\插入字符串’ filename

参考资料

https://www.cnblogs.com/ginvip/p/6352157.html 

https://baike.baidu.com
http://www.ehbio.com/Bioinfo_bash_course/


END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

软件丨MobaXterm远程登录工具

软件丨个人电脑搭建Linux虚拟机

文献丨转录组RNA seq——青年阶段!

文献丨转录组表达数据的生信挖掘研究

R语言笔记丨字符串和列表必学基础知识

R语言笔记丨三大法宝:判断、循环、函数

相关文章
|
5月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
338 32
|
5月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
625 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
10月前
|
监控 Linux 数据处理
Linux grep技巧 结合awk查询
结合 `grep` 和 `awk`,可以实现灵活、高效的文本处理和数据分析。`grep` 用于快速过滤符合条件的行,`awk` 用于进一步处理和提取数据。这种组合使用在日志分析、数据处理和系统监控等场景中尤为常见。掌握这两者的基本用法和组合技巧,可以大大提升在 Linux 环境下的工作效率。
285 7
|
Linux Perl
Linux awk命令使用技巧
【10月更文挑战第16天】Linux awk命令使用技巧
266 4
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
406 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
295 2
|
监控 Linux
linux之grep详解
linux之grep详解
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
188 2
|
机器学习/深度学习 存储 Linux
linux中强大且常用命令:find、xargs、grep
linux中强大且常用命令:find、xargs、grep
853 9

热门文章

最新文章