今天分享的学习笔记内容是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;}' filenameawk '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/被替换的内容/要替换成的内容/' filesed '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/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215
http://www.ehbio.com/Bioinfo_bash_course/LinuxGreatTools.html#regularExpr

本文由 mdnice 多平台发布

Linux三剑客:grep、sed、awk基础入门学习笔记相关推荐

  1. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

  2. Linux三剑客 grep sed awk 详细使用方法

    Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文 ...

  3. Shell ❀ 三剑客 - Grep + Sed + Awk

    文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...

  4. python基础入门学习笔记 (2)

    python基础入门学习笔记 2021年2月8日 1 编译器和解释器的区别 编译器/解释器:高级语言与机器之间的翻译官 2 值传递: print "a = ",a print &q ...

  5. k8s零基础入门 (学习笔记)

    夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 夫学须静也,才须学也,非学无以广才,非志无以成学.淫慢则不能励精,险躁则不能冶性. 年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐, ...

  6. C语言基础入门学习笔记

    前言 我是一个初中生,过完暑假就是一个高一的学生了.在这个暑假里,我学习了韦东山老师和唐佐林老师的课程,所以我写下这个笔记来记录自己的成长历程. C语言基础入门学习笔记 格式 #include < ...

  7. 三剑客grep sed awk

    三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...

  8. Python零基础入门学习笔记(一)

    Python 基础入门学习 欢迎访问博客:Python学习笔记 基本语句 基本数据类型 函数 文件操作 面向对象 异常 模块 一.基本语句 注释: # 单行注释 """多 ...

  9. Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

最新文章

  1. Linux系统配置VI或VIM的技巧
  2. python if main_python中if __name__ == '__main__' :main(()
  3. cocos2d-x游戏实例(13)-简易摇杆控制主角
  4. Linux运维人员成长之路学习书籍推荐(未删减版)
  5. java的super_Java中的Super()
  6. 每个人都应该知道的Android Studio快捷方式
  7. Windows Media Services (1) 搭建 电影服务器教程
  8. STP是一个需要众力协作的协议
  9. 服务器出现硬盘坏道怎么办,硬盘坏道修复全攻略
  10. 数据结构与算法分析题库
  11. 个人投资——基本原则
  12. 理论学习-协议栈学习-CANopen协议梳理
  13. 在机器学习领域,主要的学习方式是哪几种?
  14. 2021-04-23
  15. s5k4ba摄像头驱动分析
  16. linux fuser主机关闭,linux 下强制umount+Fuser命令详解
  17. 我们的世界又何尝不是一粒沙呢!
  18. 2021年中国货车行业现状及趋势分析:柴油货车产销双增长 [图]
  19. 招行信用卡笔试题:卡中心美食家
  20. 详解互联网APP架构2.0

热门文章

  1. 软件开发模型 - 瀑布模型 快速原型模型 增量模型 螺旋模型 及优缺点详解
  2. 猫狗大战——数据集创建详细介绍
  3. Java的教学辅助系统,信息管理系统课程辅助教学平台
  4. 李敏镐赌场照曝光 经纪公司:是合法的娱乐(图)
  5. MATLAB小技巧(10)圆形检测实例
  6. 易语言dnf学习专用和软件
  7. [转载]干股问题研究(下)
  8. RK3399 Android7.1修改系统电池容量值
  9. 怎么关闭文件预读取的服务器,关闭superfetch但保留开机预读取(prefetch)问题
  10. 下载搜狐小说-软件介绍