shell脚本学习(2)查找
1 grep 用法:
grep -F fa 找含有fa字符的字符串
yuyuyu@ubuntu:~$ grep -F fa < do.txt

grep -i fa 忽略大小写找含有fa字符的字符串
yuyuyu@ubuntu:~$ grep -i fa < do.txt 
grep -q fa 安安静静的找含有fa字符的字符串,没显示结果
yuyuyu@ubuntu:~$ grep -q fa < do.txt

2 unix 使用正则表达式的例子
匹配文本行 grep
改变输入流用sed
字符串处理的程序语言 awk Icon Perl Python Ruby Tcl
文件查看程序 more page pg
文本编辑器 vi vim jove jed emacs
3 正则表达式中的元字符(meta)用法,即特殊字符。
. 匹配任何的单个字符
grep “.” < do.txt


* 匹配任意字符的任意长度, 放第一位则无意义


^ 匹配字符串开头,或者行开头
yuyuyu@ubuntu:~$ grep "^sad" <do.txt

$ 匹配字符串结尾, 或者行结尾
yuyuyu@ubuntu:~$ grep "qb$" <do.txt

[ ] 方括号表达式,匹配方括号中的任意字符

[a-z] 匹配a-z的所有字符

[^z] 不匹配z字符

{\n\} 前侧正则表达式结果重现n次
{n,\} 前侧正则表达式结果至少重现n次
\{n,m\} 区间表达式, 匹配它之前的字符重现的次数区间, n至少是0 ,m至少是255

4 [: :]字符集
grep "[[:print:]]" <do.txt 可显示字符
grep "[[:space:]]" <do.txt 空白字符
grep "[[:xdigit:]]" <do.txt 16进制数
grep "[[:upper:]]" <do.txt 大小字母
grep "[[:lower:]]" <do.txt 小写字母
grep "[[:digit:]]" <do.txt 数字字符
grep "[[:blank:]]" <do.txt 空格与定位字符
grep "[[:alpha:]]" <do.txt 字母字符
grep "[[:alnum:]]" <do.txt 数字字符
grep "[[:punct:]]" <do.txt 标点符号
5 排序符 [. .]
6 等价字符集[= =]
7 后向引用,就 是先写个表达式 , 接着能用\1~\9 来引用它
\(\) 模式存储, 会存在特殊空间
一开始看了觉得很难,怎么测试都没找到显示结果。
这里通过3张图片来了解:
grep "\(adf\)" <do.txt 能找出adf开头的字符串
以第一行的 “adfasfas” 来引入引用

“adfasfas” 中后面的6个字母是重复的, fas fas

引用第二个空间 用\2

这样就得到一个正则表达式, 要匹配 adfasfasf 字符串了
8使用 ^ $描点,匹配起止位置
9 BRE优先级 高到低
[..] [==] [::] 字符排序的方括号
\metacharacter 转义的mea字符
[] 方括号表达式
\( \) \digit 子表达式和后向引用
* \{ \} 前置当个字符重现的正则表达式
无符号
^ $ 描点
^$ 只能用来表示字符串的开头结尾, 无法匹配内嵌的换行字符。
| 交替
10 匹配单个字符的特殊写法
grep "\[\-\]" <do.txt

grep, awk 只支持 BRE, 不支持 ERE 怪不得\\ + ? 都没法用
11 搜索两个字符串使用-e参数
logcat |grep -e "\(onEvent: 0x520\)" -e"\(enableAFCount\)"

shell脚本学习(2)查找的更多相关文章
- Shell脚本学习指南笔记
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- Shell 脚本学习资料搜集
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...
- 转 shell脚本学习指南
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...
- Shell脚本学习 - 运算符
继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...
- shell脚本学习总结02--数组
bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...
- shell脚本学习之6小时搞定(1)
shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...
- Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具
摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...
- Shell脚本学习 - 基本内容以及数据格式
为了捞取日志,自己用python写了一些东西,大致套路就是读取写入文件的操作,放到linux上跑.实际使用时发现要操作的文件有时比较大,直接打开文件找需要的东西可能会有一些效率问题.所以学习一下she ...
随机推荐
- spring-boot和redis的缓存使用
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.Maven Plugin管理 pom.xml配置代码: <?xml versio ...
- webpack对脚本和样式的处理
一.对js处理 webpack本身支持js加载也可以用插件. 1.加载要全局使用的插件比如jquery 在页面用cdn方式引用,然后再webpack.config.js里配置.会让jquery成为全局 ...
- 【HDOJ6604】Blow up the city(支配树)
题意:给定一个n点m边的DAG,将只有入边的点称为周驿东点 q次询问,每次给定a,b两点,询问删去某个点x和其相连的所有边,能使a,b至少其中之一不能到达任何周驿东点的x的个数 n,q<=1e5 ...
- POJ 2114 (点分治)
题目:https://vjudge.net/contest/307753#problem/B 题意:求树中路径和=k的点对是否存在 思路:点分治,这个题其实和上一题洛谷一样,只是这个数据强,我们不能直 ...
- Bugku | 游戏过关
思路:绕过判断,直接跳转到算flag的函数哪里 1.找到计算flag的函数在哪里,记住 "0075e940",这是入口 2.找到一个现成的跳转指令,修改它: 3.重新运行一遍,得到 ...
- [杂题]:B/b(二分答案)
题目传送门(内部题53) 输入格式 第二行$2$个整数表示$n,m$.接下来$m$行每行两个整数,描述一个点对$(x_i,y_i)$. 输出格式 一个整数,表示最短距离. 样例 样例输入: 6 21 ...
- 全国5A级旅游景区已达250家
至目前,全国5A级旅游景区已达250家,快来数数你去过多少? 全国5A级旅游景区 西藏(+) 拉萨市大昭寺.拉萨布达拉宫景区.日喀则扎什伦布寺景区.林芝巴松措景区 新增1:日喀则扎什伦布寺景区 扎什伦 ...
- GPIO 的 8 种工作模式
GPIO 的 8 种工作模式 在初始化 GPIO 的时候,根据我们的使用要求,必须把 GPIO 设置为相应的模式.如 LED 例程中的 GPIO 引脚如果配置为模拟输入模式是必然会导致错误的. 我们配 ...
- 【python】 编码转换
#转码 def utf2gbk(string): #return string s=string.decode('utf-8','ignore').encode('gb18030','ignore') ...
- soket通信
import socket #socket采用cs结构,client and Server B/S browser and server sock = socket.socket(socket.AF_ ...