文本三剑客:grep sed awk

grep和正则表达式

什么是正则表达式: 正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分隔、匹配、查找及替换操作
元字符

* 重复匹配前一个字符0到多次
. 匹配除了换行符外任意一个字符,类似通配符?
^ 匹配行首或后面字符的非
$ 匹配行尾
[ ] 匹配中括号中的指定任意一个字符,只匹配一个字符
[^] 匹配除了中括号的字符以外的任意一个字符,(取反)
\ 转义符,让特殊的字符丧失意义
{n} 表示其前面的字符恰好出现n次
{n,} 表示其前面字符出现不少于n次。
{n,m} 表示其前面的字符至少出现n次,最多出现m次

在这里插入图片描述
grep命令
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)
作用:grep命令是一种强大的文本搜索工具,根据用户指定的模式对目标文本进行匹配检查,打印匹配到的行。
模式:由正则表达式或者字符及基本文本字符所编写的过滤条件

常用参数:
-c 只输出匹配行的数量
-i 不区分大小写(只适用于单字符)
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v 显示不包含匹配文本的所有行。

sed

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
替换标志:
在这里插入图片描述
在这里插入图片描述

打印:p命令
在这里插入图片描述
在这里插入图片描述
删除:d命令
在这里插入图片描述
在这里插入图片描述
替换:s命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指定行的范围:逗号
在这里插入图片描述
在这里插入图片描述
多重编辑-e
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

awk

简介:awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
使用方法:awk ‘{pattern + action}’ {filenames}

awk -F(指定分隔符) : '{print $1}' passwd            打印passwd文件的以:为分隔符的第一列字符

在这里插入图片描述

awk -F : '{print $1$2}' passwd 打印第一列和第二列,不出现:分隔符

在这里插入图片描述

awk -F : '{print $2}' passwd 打印第二列

在这里插入图片描述

awk -F : 'BEGIN{print "linux"}{print $2}' passwd 打印第二列,并且在最前面加上linux

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print $2,n}' passwd 在第二列后面 均写上1

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print $2,n++}' passwd打印第二列,并且编号

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print n++,$1}' passwd编号在前

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print n++,$1}END{print “over”}' passwd在后面写上over

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print n++,$1}END{print NR}' passwd在结尾输出行数

在这里插入图片描述

awk -F : 'BEGIN{n=1}{print n++,$1}END{print NF}' passwd在结尾输出列数

在这里插入图片描述

awk '/bash/{print}' passwd 输出包含bash的行的第一个字符

在这里插入图片描述

awk -F : 'NR=3{print $1}' passwd第三行的第一个

在这里插入图片描述

awk '{print $0}' passwd输出行

在这里插入图片描述

发布了70 篇原创文章 · 获赞 0 · 访问量 1282

猜你喜欢

转载自blog.csdn.net/AaNiceMan/article/details/104318315