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输出行

本文详细介绍了正则表达式的概念与元字符,以及如何使用grep、sed和awk等命令进行文本搜索、编辑和分析。通过实例展示了如何利用这些工具进行高效的文本处理。
2846

被折叠的 条评论
为什么被折叠?



