Shell基本语法---处理海量数据的grep命令
grep命令
- shell脚本三剑客之一
grep应用场景:通常对数据进行 行的提取
语法:grep [选项] [内容] [file]
-v 对内容进行取反提取
-n 对提取的内容显示行号
-w 精确匹配
-i 忽略大小写
^ 匹配开头行首
-E 正则匹配
正则语法
| 正则表达式 | 描述 | 例子 |
| \ | 转义符,将特殊字符进行转义,忽略其特殊意义 | a.b匹配a.b,但不能匹配ajb,.被转义为特殊意义 |
| ^ | 匹配行首,^则是匹配字符串的开始 | ^tux匹配以tux开头的行 |
| $ | 匹配行尾,$则是匹配字符串的结尾 | tux$匹配以tux结尾的行 |
| . | 匹配除换行符\n之外的任意单个字符 | ab.匹配abc或bad,不可匹配abcd或abde,只能匹配单字符 |
| [] | 匹配包含在[字符]之中的任意一个字符 | coo[kl]可以匹配cook或cool |
| [^] | 匹配字符之外的任意一个字符 | 12345不可以匹配1234或1235,1236、1237都可以 |
| [-] | 配[]中指定范围内的任意一个字符,要写成递增 | [0-9]可以匹配1、2或3等其中任意一个数字 |
| ? | 匹配之前的项1次或者0次 | olou?r可以匹配color或者colour,不能匹配colouur |
| + | 匹配之前的项1次或者多次 | sa-6+匹配sa-6、sa-666,不能匹配sa- |
| * | 匹配之前的项0次或者多次 | co*l匹配cl、col、cool、coool等 |
| () | 匹配表达式,创建一个用于匹配的子串 | ma(tri)?匹配max或maxtrix |
| {n} | 匹配之前的项n次,n是可以为0的正整数 | [0-9]{3}匹配任意一个三位数,可以扩展为0-9[0-9] |
| {n,} | 之前的项至少需要匹配n次 | [0-9]{2,}匹配任意一个两位数或更多位数 |
| {n,m} | 指定之前的项至少匹配n次,最多匹配m次,n<=m | [0-9]{2,5}匹配从两位数到五位数之间的任意一个数字 |
| | | 交替匹配|两边的任意一项 | ab(c|d)匹配abc或abd |
- 常用规则
| 描述 |
| .* 所有字符 |
| [a-z] 小写字母 |
| [A-Z] 大写字母 |
| [a-Z] 小写和大写字母 |
| [0-9] 数字 |
- 常用用法之一
grep "xxx" -r dir #查找指定目录下包含指定内容的文件
Shell基本语法---处理海量数据的grep命令的更多相关文章
- Shell基本语法---处理海量数据的sed命令
sed命令 shell脚本三剑客之一 处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到 ...
- Shell基本语法---处理海量数据的awk命令
awk命令 其实是一门编程语言,支持条件判断,数组,循环等功能,与grep,sed被称为linux三剑客 之所以叫AWK是因为取其三位创始人 Alfred Aho,Peter Weinberger, ...
- Shell基本语法---处理海量数据的cut命令
cut命令 cut应用场景:通常对数据进行列的提取 语法:cut [选项] [file] -d #指定分割符 -f #指定截取区域 -c #以字符为单位进行分割 # 以':'为分隔符,截取出/etc/ ...
- 处理海量数据的grep、cut、awk、sed 命令
grep.cut.awk.sed 常常应用在查找日志.数据.输出结果等等,并对我们想要的数据进行提取. 通常grep,sed命令是对行进行提取,cut跟awk是对列进行提取 处理海量数据之grep命令 ...
- Linux Shell脚本入门--grep命令详解
grep简介<摘自鸟哥,并加以整理.> grep (global search regular expression(RE) and print out the line,全面搜索正则表达 ...
- shell编程之grep命令的使用
大家在学习正则表达式之前,首先要明确一点,并把它牢牢记在心里,那就是: 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,不要把二者搞混了.切记!!! 通常有三种文本处理工具/ ...
- shell 中grep命令详解
用‘grep’搜索文本文件如果您要在几个文本文件中查找一字符串,可以使用‘grep’命令.‘grep’在文本中搜索指定的字符串.举个例子:假设您正在‘/usr/src/linux/Documentat ...
- linux shell编程学习笔记(二) --- grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- shell脚本--内容查找之grep命令
grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...
随机推荐
- APP测试经验总结
app测试哪几项: 每一款APP上线之前都需要经过严格的测试,测试周期可按项目开发周期来确定测试时间,一般测试时间为两三周(15个工作日),不过这个根据项目实际情况,可能推迟或提前的. ...
- python读取文件路径
不同系统对文件路径的分割符不同: 在Windows系统下的分隔符是:\ (反斜杠). 在Linux系统下的分隔符是:/(斜杠). 绝对路径和相对路径 绝对路径就是文件的真正存在的路径,是指从硬盘的根目 ...
- 【spring boot】spring boot 拦截器
今日份代码: 1.定义拦截器 import com.alibaba.fastjson.JSON; import org.apache.commons.collections.CollectionUti ...
- 你想了解的 HTTPS 都在这里
HTTP 协议仅仅制定了互联网传输的标准,简化了直接使用 TCP 协议进行通信的难度.有关 HTTP 协议相关的讲解请看前面两节: HTTP 协议详解 HTTP协议详解(二) less is more ...
- SecureCRT连接阿里云ECS服务器,经常掉线的解决方案
1 使用SecureCRT远程连接后,Options > Session Options > Terminal(终端) > 勾选 “Send protocol NO-OP”
- python编程从入门到实践笔记
我的第一个hello world 程序 print("hello python world") print("hello python world"*3) 打印 ...
- VMware Workstation安装centos
begin 2020年7月4日16:32:34 今天我们是食神,来做一道菜,名曰VMware Workstation安装centos. 首先我们需要准备好锅和食材. 锅和食材 锅:VMware Wor ...
- 图片文件分布式存储方案设计模式(c#--sqlserver)
1.为了降低web服务器的压力,申请了2台文件服务器,用来存放图片文件.但是两台文件服务器如何让程序自己选择呢? 于是我用了一个算法,思路如下: 从状态表筛选出可用的图片服务器集合记作C,并获取集合的 ...
- GAN网络从入门教程(二)之GAN原理
在一篇博客GAN网络从入门教程(一)之GAN网络介绍中,简单的对GAN网络进行了一些介绍,介绍了其是什么,然后大概的流程是什么. 在这篇博客中,主要是介绍其数学公式,以及其算法流程.当然数学公式只是简 ...
- Mysql如何取当日的数据
下面的sql语句可以取出当日的数据 SELECT * FROM table WHERE 时间字段 BETWEEN DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') AND ...