Linux正则和grep命令
设置命令的默认参数和别名
- 每次都要输入
ls -l,烦不烦,我想用ll来表示ls -l, 可以,只要在~/.bashrc中加上alias ll='ls -l',然后运行source ~/.bashrc来使配置立即生效即可。
正则表达式
- 正则表达式就是有规则的字符串,字符串中有一些特殊字符来表示一定的规则,符合这个规则的字符串就能被匹配上。 如
^the表示每一行都以the开头的字符串;^[^a-zA-Z]表示所有不以英文字母开头的行。
元字符
- 所谓元字符,就是这个字符是代表一类字符或这代表某种规则。
.对,就是小数点,它代表除换行符外的任意一个字符,注意是一个字符。\w匹配字母数字下划线和汉子。注意也是匹配一个字符。\s匹配任意一个空白符。\d匹配任意一个数字。\b匹配单词的开头或结尾^匹配行首。$匹配行尾。[^x]匹配任意不是x的字符。[^xyz]匹配任意不是x,y,z的字符。- 另外linux中大写字母一般表示小写字母的相反意义,上面的 w, s, d, b分别有对应的 W, S, D ,B 分别表示它们的相反意思。
数量及各种括号
*放在一个字符的后面,表示前面的字符可以出现0次或多次。?同上,但是表示前面的字符可以出现0次或1次。+同上,但是代表前面的字符可以出现1次或多次。()小括号,里面的看作一个整体,也就是看作一个"字符",*,? + 等修饰整个小括号里面的内容。[]中括号,不论里面有多少字符,它仅表示一个字符,如 [abc] 表示字符a 或 字符b或字符c。{}大括号,修饰前面的一个字符,表示该字符出现多少次,如 {2} 表示除2次,{3,} 表示出现3或3次以上,{3,9} 表示出现次数在3到9之间,包括3和9. 注意{和}前要加转义符。|或,如abc \| cde,匹配包含 abc 或 cde的行。注意|之前要加转义符。
grep
grep: global search regular expression (RE). 一种可使用正则进行文本搜索的工具,并把匹配的行打印出来。
示例
- 将 /etc/passwd 没有出现 root 的行取出来 :
grep -v /etc/passwd-v参数就表示相反的意思。 在当前目录及子目录下递归搜索行内有 "important" 的文件 :
grep -r 'important' *- 在当前目录及子目录下递归搜索行内有 "important" 的文件,但仅显示文件名 :
grep -l -r 'important' * - 搜寻包含 test 或 tast 的行并显示行号 :
grep -n 't[ae]st' test.txt - 搜索包含 aa 但是 aa 前面不能是 b 的行:
grep '[^b]aa' - 搜索所有包含 hi并且hi前面不是小写字母的行:
grep [^a-z]hi txt3 - 搜索包含数字的行:
grep -n '[0-9]' txt3 - 搜索行首是The的行:
grep -n '^The' txt3 - 搜索行首第一个字母是小写的行:
grep -n '^[a-z]' txt3 - 搜索行首第一个字符不是字母的行:
grep -n '^[^a-zA-Z]' txt3 - 搜索行尾为小数点的行:
grep -n '\.$' txt3因为小数点是元字符,所以加了转移字符反斜杠。 - 以
good.结尾的行:grep -n 'good.$' txt3 - 找出类似
g??d的行:grep -n 'g..d' txt3 找出 g后面跟2个或2个以上o的行:
grep -n 'go\{2,\}' txt3注意大括号要前要加转义符。
egrep 对grep的增强,支持扩展的表达式
- 搜索所有包含 CN 或 US的行:
egrep -n 'CN|US' txt3|就是扩展的元字符, - 如果使用grep时在扩展的元字符前加反斜杠,grep会自动使用egrep. 如上面的也可写成:
grep -n 'CN\|US' txt3 - 搜索所有包含1个或多个3的行:
egrep -n 'o+' txt3 - 搜索所有包含1个或多个go的行:
egrep -n '(go)+' txt3
fgrep,查询速度比grep快,但不会识别正则表达式,只会原样搜索字符串。
- 搜索包含
**的行:fgrep -n '**' txt3
Linux正则和grep命令的更多相关文章
- Linux中利用grep命令如何检索文件内容详解
前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...
- Unix/Linux中的grep命令(转)
本文转载自:如何使用Unix/Linux grep命令——磨刀不误砍柴工系列.该博文条理很清晰. grep简介 grep在一个或多个文件中查找与模式字符串(pattern)匹配的行,并将搜索的结果打印 ...
- 【Linux基础】grep命令
1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 命令格式:grep [option] pattern file 2.常用参数与举例: -e : 使用P ...
- [svc]linux正则及grep常用手法
正则测试 可以用sublime等工具快速的检测正则是否合适 china : 匹配此行中任意位置有china字符的行 ^china : 匹配此以china开关的行 china$ : 匹配以china结尾 ...
- Linux 中的 grep 命令
一,grep命令有什么用 个人觉得grep命令就是一个对文本或输出进行匹配并控制输出的一个工具,看一下下面的参数,部分翻译了,有不对的地方,还请指正: grep --help 匹配模式选择: -E, ...
- Linux find、grep命令详细用法
在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:find命令 find命令的一般形式 ...
- windows下类似Linux下的grep命令
今天要查看windws下代理服务器有哪些IP连接过来,但使用 netstat -na 后出现很多连接会话,不方便查看. 想到Linux下的grep非常方便,于是网络上搜寻,还是有类似的命令findst ...
- Linux中通过grep命令检索文件内容和指定内容前后几行
原文链接: https://www.linuxidc.com/Linux/2017-11/148390.htm Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命 ...
- linux(centos8):用grep命令查找文件内容
一,grep的用途: linux平台有最常用的三大文本处理工具:awk/sed/grep grep的功能:搜索指定文件的内容,按照指定的模式匹配,并输出匹配内容所在的行. 需要注意的地方:grep只支 ...
随机推荐
- 还是Qt 通过stylesheet或者palette设置背景色的问题
关于Qt,设置一个widget的背景色后,希望子对象不受影响. 很久以前在QtForum上问过一个问题:http://www.qtforum.org/post/94103/setting-backgr ...
- Python 标准库 —— uuid(生成唯一 ID)
有时我们在百度贴吧,在一个网站,保存网页上的一些图片时,图片名有时会是一串很长的数字和字母组成的,但无一例外,图像之间不会出现重名.这个唯一的 id,一般通过 uuid 的方式获得,uuid 根据的是 ...
- 世界卫生组织(WHO)发出最新警告:埃博拉疫情应急响应
10月14r日.世界卫生组织(WHO)发出警告:在未来两个月内,西非国家将面对"could face up to 10 thousand new Ebola cases a week wit ...
- burp suite中国乱码的解决方案
于http的response还有经常出现乱码,其实解决的办法很easy 首先点击Options标签, 然后找到display 找到http message display watermark/2/te ...
- echarts的一些基础笔记
图表标题 title: { x: "left", // 水平安放位置,默认为左对齐,可选为: // 'center' ¦ 'left' ¦ 'right' // ¦ {number ...
- git commit 报错 There was a problem with the editor 'vi'
今天提交代码git commit -a的时候出现了这个错误 上网查了一下,说是Vim的返回值出错了,出错的原因还在翻译英文, 先贴出解决方案吧 git config --global core.ed ...
- 我是怎么做App token认证的
使用Token来做身份认证在目前的移动客户端上非常流行,Token这个概念来源于OAuth认证,主要是在服务端实现.关于相关的原理,同学们自行百度.在这里,我简单介绍一下我是怎么具体实现的,重点描述t ...
- 人工模拟获取latch
人工模拟获取latch 任意地dump一latches结构文件: SQL> oradebug dump latches 10 ORA-00074: no process has been spe ...
- Codeforces 35E Parade 扫描线 + list
主题链接:点击打开链接 意甲冠军:特定n矩阵(总是接近底部x轴) 然后找到由上面的矩阵所包围的路径,的点 给定n 以下n行给定 y [x1, x2] 表示矩阵的高度和2个x轴坐标 思路: 扫描线维护每 ...
- theano 安装杂记
0. MinGW MinGW:Windows 下的 g++等linux 下的编译工具: Anaconda 下 MinGW 的安装(进行 windows cmd 界面):conda install mi ...