linux下grep文件内容搜索工具及基本正则表达式详解

grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本,

并将符合模式的文本行显示出来。

格式:grep [选项] 匹配条件 文本名称

选项:  -i:  忽略大小写

-v: 显示没有被模式匹配到的行

-o:只显示被模式匹配到的字符串

--color: 搜索出来文件高亮度显示

-A: 匹配指定行的下几行

-B: 匹配指定行的上几行

-C: 匹配指定行的上下几行

-E: 扩展正则表达式 相当于egrep

正则表达式:Regular Expression, 简称REGEXP

注意:\是脱义符,防止与bash冲突,脱去其原有的意思

元字符

.: 匹配任意单个字符

[]: 匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

例如:特殊字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:],                   [:alnum:]

匹配次数

*: 匹配其前面的字符任意次

.*: 任意长度的任意字符

\?: 匹配其前面的字符1次或0次

\{a,d\}:匹配其前面的字符至少a次,至多d次

例如:\{1,\} 表示:前面字符至少匹配1次,最多不限

\{0,6\} 表示: 前面字符至少匹配0次,最多6次

举例说明:显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行

grep ‘^[[:space:]\{1,\}]‘ /boot/grub/grub.conf

位置锁定或叫锚定

^: 锁定行首,此字符后面的任意内容必须出现在行首

举例说明:显示/etc/passwd文件中r开头的行

grep ‘^r‘ /etc/passwd

$: 锁定行尾,此字符前面的任意内容必须出现在行尾

举例说明:显示/etc/passwd文件中bash结尾的行

grep ‘bash$‘ /etc/passwd

^$: 表示 空白行

\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

举例说明:显示/etc/passwd文件中以root开头并以root词结尾的行

grep ‘^root\>‘ /etc/passwd

分组:\(\)

例如:\(mn\)* 表示匹配任意mn组合字符

后向引用

\1:  引用第一个左括号以及与之对应的右括号所包括的所有内容

\2: 引用第二个左括号以及与之对应的右括号所包括的所有内容

\n: 引用第n个左括号以及与之对应的右括号所包括的所有内容

举例说明:显示/etc/inittab文件中以一数字开头同时以一个与开头相同数字结尾的行

grep ‘^\([0-9]\).*\1$‘ /etc/inittab

时间: 2024-08-28 16:38:05

linux下grep文件内容搜索工具及基本正则表达式详解的相关文章

linux下egrep文件内容搜索工具及扩展正则表达式详解

egrep命令: 根据模式(文本字符和扩展正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:egrep [选项] 匹配条件 文本名称 egrep 等于 grep -E 选项:  -i:  忽略大小写 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 --color: 搜索出来文件高亮度显示 -A: 匹配指定行的下几行 -B: 匹配指定行的上几行 -C: 匹配指定行的上下几行 正则表达式:Regular Expression, 简称REGEX

Finder(文件内容搜索工具)

搜索文件夹内容的小工具 Github 两种搜索模式的算法: BoyerMooreSearch.cs using System.Threading; using System.Collections.Generic; using System.Linq; namespace Finder.Algorithms { /// <summary> /// An implemention of Boyer-Moore algorithm. /// <para/>author : Ornith

Linux下查看文件内容的命令

查看文件内容的命令: cat     由第一行开始显示内容,并将所有内容输出 tac     从最后一行倒序显示内容,并将所有内容输出 more    根据窗口大小,一页一页的现实文件内容 less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head    只显示头几行 tail    只显示最后几行 nl      类似于cat -n,显示时输出行号 1.cat 与 tac cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行

linux下查看文件内容cat,more,less

1. 查看文件内容经常使用的命令 cat : 由第一行显示文件内容 tac:  从最后一行開始显示.与cat相反 nl :  文件内容和行号一起输出 more: 一页一页显示 less: 与more类似,能够往前翻页 head: 取头部几行 tail:  取尾部几行 od: 以二进制方式读取文件内容 2. cat命令 查看cat的參数 cat --h $ cat --h Usage: cat [OPTION] [FILE]... Concatenate FILE(s), or standard

Linux 下比较文件内容并相同部分、不同部分

说明,是通过file2内容与file1做比较,最后列出file1与file2不同的部分! 一.准备两个文件: [[email protected] test1]# cat file1 a b c d e [[email protected] test1]# cat file2 c e 二.比较方法: 方法一:grep 命令 [[email protected] test1]# grep -v -f file2 file1 a b d 方法二:comm 命令 [[email protected]

linux下查看文件内容

vi 文件名 #编辑方式查看,可修改cat 文件名 #显示全部文件内容more 文件名 #分页显示文件内容tail 文件名 #仅查看尾部,还可以指定行数head 文件名 #仅查看头部,还可以指定行数sed '1,$'p 文件名 #这个可以指定起始行和结束行的,把1和$换了就可以awk ........

使用 /proc 文件系统来访问 linux操作系统 内核的内容 &amp;&amp; 虚拟文件系统vfs及proc详解

http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/20130422/366044.html 使用 /proc 文件系统来访问 Linux 内核的内容 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口 简介: /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux? 内核空间和用户空间之间进行通信.在 /proc 文件系统中,

Linux下mysql的安装与卸载并且连接navicat详解(亲测可用)

哈喽,大家好,费了九牛二虎之力,终于完成了linux下用yum安装mysql,虽然出了很多错,但是最终成功可谓是不易,下面详细介绍下mysql的安装步骤: 一.卸载mysql 1.首先查看以前是否在linux上安装过mysql,如果有则需要先卸载干净. 首先使用命令查看虚拟机上是否存在mysql rpm -qa|grep -i mysql 如图所示,表示存在 2.停止mysql服务.删除之前安装的mysql 删除命令:rpm -e –nodeps 包名 如图所示: 如果提示依赖包错误,则使用以下

linux下通过mount挂载iscsi、ntfs、nfs详解

通常服务器本机自带磁盘空间有限,都需要额外加载磁盘,可以采用mount方式把远程的共享存储磁盘加载进来,目前用过的有iscsi.ntfs.nfs三种类型 一,mount挂载iscsi类型1,查找下准备挂载的磁盘或者存储器[[email protected] /]# iscsiadm -m discovery -t st -p 1x.xx.0.22:32601x.xx.0.22:3260,1 iqn.2001-05.com.equallogic:0-8a0906-6dac38009-c1b1cac