Linux Shell Scripting Cookbook 读书笔记 4
正则, grep
1. 正则表达式
| 正则表达式 | 描述 | 示例 |
| ^ | 行起始标记 | ^hell匹配以hell开头的行 |
| $ | 行尾标记 | test$匹配以test结尾的行 |
| . | 匹配任意一个字符 | hell.匹配hell1,hell2,但是不能匹配hell12,只能匹配单个字符 |
| [] | 匹配包含在[字符]之中的任意一个字符 | test[123]匹配test1,test2,test3 |
| [^] | 匹配除[^字符]之外的任意一个字符 | test[^12]不匹配test1,test2,匹配test3 |
| [-] | 匹配指定范围内的任意一个字符 | [0-10],匹配0~10中的任意一个数字 |
| ? | 匹配之前的项1次或者0次 | hel?o匹配helo或者heo |
| + | 匹配之前的项1次或者多次 | hel+o匹配helo或者helllllo,但是不能匹配heo |
| * | 匹配之前的项0次或多次 | hel*o匹配helo或者helllllo,也能匹配heo |
| () | 创建一个用于匹配的子串 | ma(tri)?可以匹配ma或者matri |
| {n} | 匹配之前的项n次 | [0-9]{3}匹配任意一个三位数 |
| {n,} | 匹配之前的项至少n次 | [0-9]{3,}匹配任意一个三位或者更多位的数 |
| {n,m} | 匹配之前的项n到m次 | [0-9]{3,4}匹配一个三位到四位的数 |
| | | 匹配 | 两边的任意一项 | June (1st | 2nd)匹配June 1st或者June 2nd |
| \ | 转义符可将上面的符号转义 | a\*b匹配a*b,不能匹配ab |
2. grep
递归搜索
grep "text" . -R -n
-R 表示在当前目录递归搜索,-n打印出匹配的文件的行号



如果需要排除目录,可以使用--exclude-dir
打印出匹配行的前后行

多个匹配以--分隔

Linux Shell Scripting Cookbook 读书笔记 4的更多相关文章
- Linux Shell Scripting Cookbook 读书笔记 1
本系列文章为<Linux Shell Scripting Cookbook>的读书笔记,只记录了我觉得工作中有用,而我还不是很熟练的命令 书是很好的书,有许多命令由于我比较熟悉,可能就没有 ...
- Linux Shell Scripting Cookbook 读书笔记 2
cat,script,find, xargs, tr, tmp文件,字符串截取,批量文件重命名,固定大小文件,自动化交互 1. cat的用法 压缩连续的空白行 cat -s file 也可以用tr,将 ...
- Linux Shell Scripting Cookbook 读书笔记 7
ping, du, ps, kill, 收集系统信息 判断网络中哪些主机是活动主机 #!/bin/bash for ip in 10.215.70.{1..255}; do ( ping $ip -c ...
- Linux Shell Scripting Cookbook 读书笔记 6
wget,curl, tar, rsync wget ftp://example.com/somefile.img -t 5 -O download.img -o log -t表示重试的次数 -O指定 ...
- Linux Shell Scripting Cookbook 读书笔记 5
sed,awk 1. sed (string editor) 使用-i可以将结果运用于原文件 sed 's/text1/text2/' file > newfile mv newfile fil ...
- Linux Shell Scripting Cookbook 读书笔记 3
patch, tree, head ,tail 1. 创建不可修改文件 chattr +i file chattr -i file 移除不可修改属性 2. 能够启动闪存或硬盘的混合ISO isohyb ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
随机推荐
- 【Oracle】append
我们在生产环境中经常遇到需要往表中插入大量数据的情况,怎么样才能让插入数据的速度变快呢?Oracle中的append简直就是神器!!没图说个**,直接上图: 是不是看晕了?哈哈,莫慌,请看下面总结: ...
- CXF-JAX-WS开发(二)spring整合CXF-JAX-WS
一.服务端 1.目录结构 2.创建maven工程[Packaging:war] 3.引入依赖 <dependencies> <!-- CXF(这里不需要引入cxf-rt-transp ...
- js-url解析函数
//Url解析 function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: ...
- day005 流程控制 (if / for / while)
流程控制 语法 if判断其实就是模拟人在做判断,如果做一件事情,你使用这种方式做 或者使用另一种方式做. if 条件: 代码块 ... # 代码块(同一缩进级别的代码,例如代码1.代码2和代码3是相同 ...
- Node.js标准的回调函数
Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果. function (err, data) 当正常读取时,err参数为null,data参数为读取到的String.当读取发生 ...
- Django 模型层(标签、过滤器、模板的继承与导入)
过滤器/自定义过滤器 模板语法中的过滤器类似于python中的内置方法,在我们把数据从后端通过rander传入到前端html文件中之后,在前端我们可以通过模板语法,对传入的数据再进行以通骚操作. 首先 ...
- codeforces 467C George and Job(简单dp,看了题解抄一遍)
题目 参考了网页:http://www.xue163.com/exploit/180/1802901.html //看了题解,抄了一遍,眼熟一下,增加一点熟练度 //dp[i][j]表示是前i个数选出 ...
- echarts常用实例
1.柱状图: 1.需要动态加载的参数是x轴以及柱状图的数值,legendData和seriesData.demo使用是可以直接写死参数,在执行this.initChart()方法即可.具体代码可以参数 ...
- (ccf模拟)201709-2公共钥匙盒
#include <iostream> #include<string> #include <algorithm> #include<sstream> ...
- ASP.NET Core多平台部署 (Windows Server+IIS与CentOS 7+Nginx)
一,Windows Server+IIS部署 1,安装配置IIS,这个应该都不用多说了,教程一堆 2,下载安装.NET Core Runtime 与 .NET Core SDK,下载请点击下载地址,如 ...