1 概念:
grep ---> global reserch by expression
根据模式搜索文本,并将符合模式的文本行显示出来。
2 特点:
做部分匹配的,显示的是符合条件的整行数据,重点展示的是匹配到的那个字段。
3 写法:
grep [options] PATTERN [FILE...] -i: 忽略大小写 --color 匹配到的带颜色展示 -v: 显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串
匹配次数(贪婪模式):
匹配其前面的字符任意次 ----> 一定要记住,*表示匹配的是前面的字符 比如 a*b表示匹配 前面字符a为任意多次的单词 eg: [root@chinadaas109 zhoumingtest]# cat test ab aab abb acb [root@chinadaas109 zhoumingtest]# grep --color -o 'a*b' test 表示查找b前面出现字符a为0或者多次的单词,并将符合条件的单词打印出来 ab aab ab b b
4 Pattern介绍, 正则表达式:
正则表达式:REGular EXPression, REGEXP 正则里面有一些元字符,这些元字符本身没有含义,
只是表示一些统配的含义。
元字符:
.: 匹配任意单个字符 []: 匹配指定范围内的任意单个字符 [^]:匹配指定范围外的任意单个字符 字符集合:[:digit:], [:lower:], [:upper:], [:punct:], [:space:], [:alpha:], [:alnum:] .*: 任意长度的任意字符 \?: 匹配其前面的字符1次或0次, eg: # grep --color -o 'a\?b' test \{m,n\}:匹配其前面的字符至少m次,至多n次 \{1,\}: 至少一次 \{0,3\}: 至少0次,最多3次
位置锚定:
位置锚定: ^: 锚定行首,此字符后面的任意内容必须出现在行首 $: 锚定行尾,此字符前面的任意内容必须出现在行尾 ^$: 空白行 应用: 查询inittab文件内的空白行 # grep '^$' /etc/inittab | wc -l 0 查询inittab文件内末尾为数字的行 # grep '[[:digit:]]$' /etc/inittab # 5 - X11 \<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现 \>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现 eg: \<root\> 表示匹配整行中只有root这个单词的行 查询以root为行尾的行 # cat test ab aab abb acb rooter the user is root # grep 'root\>' test the user is root
分组:
分组: \(\) \(ab\)* ---> 分组的目的主要是为了让后面能在继续用到前面的内容 后向引用(前面出现什么,后面就能引用到什么) \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容 \2: 引用第二个左括号以及与之对应的右括号所包括的所有内容 \3: 引用第三个左括号以及与之对应的右括号所包括的所有内容 # cat test he love his lover she like her lover he like his liker she love her liker # grep '\(l..e\).*\1' test ---> 反向引用的案例 he love his lover he like his liker
案例:
1 判断当前系统上是否有用户的默认shell为bash; 如果有,就显示有多少个这类用户;否则,就显示没有这类用户; total = `grep "\<bash$" /etc/passwd &> /dev/null | wc -l` if [ $total -eq 0 ]; then echo "no such bash user" else echo "the bash users num is $total" 2 给定一个文件,比如/etc/inittab 判断这个文件中是否有空白行; 如果有,则显示其空白行数;否则,显示没有空白行。 #!/bin/bash A=`grep '^$' /etc/inittab | wc -l` if [ $A -gt 0 ]; then echo "$A" else echo "no blank" fi
相关推荐
为了满足这部分用户的需求,出现了"grep-2.5.4-setup",这是一个专为Windows设计的grep版本,使得在Windows环境下也能享受到类似Linux的grep功能。 grep-2.5.4-setup.exe是这个Windows版本的安装程序,用户可以通过...
grep-2.20-3.el7.x86_64.rpm
标题中的“grep-2.5.4-setup”和“gvim80.zip”指的是两个流行的开源软件工具在Windows平台上的安装程序。`grep`是一款强大的文本搜索工具,源自Unix/Linux系统,而`vim`则是一款高度可配置的文本编辑器,同样起源于...
linux下的数据恢复工具 在说一下删除的原理吧。 当硬盘上的一个文件删除,其实没有真正想象中的那样在硬盘上清除掉的,他是把inode号和block块的那个链子 断开,但是真正的数据还是在硬盘上的,有没有感觉在windos上...
这个压缩包“linux-grep-命令-详解.zip”包含了一份详细文档“linux-grep-基本用法及高级技巧.doc”,将深入解析grep命令的各个方面。下面,我们将根据文档内容,对grep命令进行详细介绍。 grep,顾名思义,“g/re/...
开源项目-bettinson-grep-webpage.zip,I'm a complete go beginner and I wrote a simple grep function for web pages in go. How does this look?
grep-console是一款针对JetBrains IDEA系列集成开发环境的强大插件,它极大地增强了控制台输出的查看和分析能力。这款插件的出现,使得开发者在处理大量的日志信息时,能够更高效地定位问题,提高开发效率。 一、...
离线安装包,亲测可用
利用ext3grep恢复文件时并不依赖特定文本格式。首先ext3grep通过文件系统的root inode(根目录的inode一般为2)来获取当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后...
grep-2.5.4-setup.exe for windows
8. **反转选择** ```bash grep -v "pattern" file.txt ``` 在 `file.txt` 文件中搜索不包含 "pattern" 的行。 9. **多文件搜索** ```bash grep "pattern" file1.txt file2.txt ``` 在 `file1.txt` 和 `...
本资源“Linux-系统随你玩之-grep查找文件内容-fyydlz.zip”包含了关于如何使用`grep`进行文本搜索的示例文件——fyydlz.txt。 `grep`,全称“Global Regular Expression Print”,顾名思义,它支持正则表达式并...
grep "[5-8][6-9][0-3]" myfile 匹配myfile中第一位为5|6|7|8,第二位6|7|8|9,第三位为0|1|2|3的三个字符的行 ;grep "4\{2,4\}" myfile 匹配myfile中含有44,444或44444的行 grep "\?" myfile匹配myfile中含有...
本篇文章将详细探讨如何通过扩充CMD来实现与Linux命令行的兼容性,特别是针对“grep”这一强大的文本搜索工具。 首先,我们要明白,Linux的命令行工具通常不直接在Windows上运行,因为它们是为类Unix系统设计的。...
### 文本处理工具三剑客之——grep 在Linux系统管理与开发中,文本处理是一项极为重要的技能。作为文本处理的三大工具之一,`grep`以其强大的文本搜索能力而著称,尤其当它与正则表达式相结合时,能够极大地提高...
要使用ext3grep,首先需要下载并解压“ext3grep-0.10.2.tar.gz”这个压缩包。解压后,进入解压后的目录,通过编译和安装过程将其设置到系统路径中。通常,这个过程包括以下步骤: 1. `cd ext3grep-0.10.2` 2. `./...
【fs-grep】是一个专为前端开发者设计的开源库,其灵感来源于经典的Linux命令`grep`,用于在文件系统中快速查找包含特定文本内容的文件。这个库将强大的搜索功能带到了前端环境中,使得在浏览器端处理大量文本数据时...
grep 命令是 Linux 系统中最常用的文本处理工具之一,它可以根据用户指定的模式对目标文本逐行进行匹配检查,并打印匹配到的行。grep 命令的格式为:grep [OPTIONS] PATTERN [FILE...] 其中,OPTIONS 是可选参数,...
### Linux 下 `grep` 命令详解 ...通过以上介绍,我们可以看到 `grep` 命令的强大之处在于其丰富的选项配置,能够满足不同场景下的文本搜索需求。掌握这些选项可以帮助我们更高效地完成文本检索任务。