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;}' 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基础入门学习笔记相关推荐
- 15分钟搞定Linux三剑客 grep sed awk
剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...
- Linux三剑客 grep sed awk 详细使用方法
Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文 ...
- Shell ❀ 三剑客 - Grep + Sed + Awk
文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...
- python基础入门学习笔记 (2)
python基础入门学习笔记 2021年2月8日 1 编译器和解释器的区别 编译器/解释器:高级语言与机器之间的翻译官 2 值传递: print "a = ",a print &q ...
- k8s零基础入门 (学习笔记)
夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 夫学须静也,才须学也,非学无以广才,非志无以成学.淫慢则不能励精,险躁则不能冶性. 年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐, ...
- C语言基础入门学习笔记
前言 我是一个初中生,过完暑假就是一个高一的学生了.在这个暑假里,我学习了韦东山老师和唐佐林老师的课程,所以我写下这个笔记来记录自己的成长历程. C语言基础入门学习笔记 格式 #include < ...
- 三剑客grep sed awk
三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...
- Python零基础入门学习笔记(一)
Python 基础入门学习 欢迎访问博客:Python学习笔记 基本语句 基本数据类型 函数 文件操作 面向对象 异常 模块 一.基本语句 注释: # 单行注释 """多 ...
- Linux高级专题详解--shell编程大全(shell变量,if语句,case语句,for循环,while循环,函数调用,数组,正则表达式,shell脚本三剑客--grep,sed,awk家族)
shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...
最新文章
- Linux系统配置VI或VIM的技巧
- python if main_python中if __name__ == '__main__' :main(()
- cocos2d-x游戏实例(13)-简易摇杆控制主角
- Linux运维人员成长之路学习书籍推荐(未删减版)
- java的super_Java中的Super()
- 每个人都应该知道的Android Studio快捷方式
- Windows Media Services (1) 搭建 电影服务器教程
- STP是一个需要众力协作的协议
- 服务器出现硬盘坏道怎么办,硬盘坏道修复全攻略
- 数据结构与算法分析题库
- 个人投资——基本原则
- 理论学习-协议栈学习-CANopen协议梳理
- 在机器学习领域,主要的学习方式是哪几种?
- 2021-04-23
- s5k4ba摄像头驱动分析
- linux fuser主机关闭,linux 下强制umount+Fuser命令详解
- 我们的世界又何尝不是一粒沙呢!
- 2021年中国货车行业现状及趋势分析:柴油货车产销双增长 [图]
- 招行信用卡笔试题:卡中心美食家
- 详解互联网APP架构2.0