网站首页 > 技术文章 正文
一、概述
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
这也是一个我们比较常用的命令之一,好多时候虽然没通过系统的学习,但是我们还是会经常用到。通过帮助文档我们可以得知,egrep、fgrep是grep的别名。网上一些文章说egrep、fgrep与grep有区别,这种说法是不准确的。让我们来用实际例子来看一下:
[grep@GeekDevOps ~]$ alias | grep grep
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
再通过man看一下:
[grep@GeekDevOps ~]$ man grep
General Commands Manual GREP(1)
NAME
grep, egrep, fgrep - print lines matching a pattern
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
但是,pgrep跟grep就有点区别了,大家可别搞混淆啦!接下来的内容就只扯grep这个梗!
二、使用介绍
1.命令格式(用法)
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
在每个 FILE 或是标准输入中查找 PATTERN。
默认的 PATTERN 是一个基本正则表达式(缩写为 BRE)。
例如: grep -i ‘hello world’ menu.h main.c
2.选项(也就是上面提到的:OPTIONS)
以上内容均来自grep –help,本人仅作部分翻译及收集整理。更多详细内容可以参考:man grep。
3.使用示例
帮助内容看起来有点多,我们就挑选比较常用的来学习好了。
(1)常规用法
-a :将二进制文件以文本文件的方式查找数据,也就是不忽略二进制文件内的查找。
[grep@GeekDevOps ~]$ file /bin/dir
/bin/dir: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=cb457e6070d3129721df79b26c999b4d08ed1ea7, stripped
[grep@GeekDevOps ~]$ grep "dir" /bin/dir
匹配到二进制文件 /bin/dir
?:匹配之前的项一次或0次(单独的?是不支持基本表达式的,注意区分以下2图)。
+:匹配之前的项一次或者多次。
*:匹配0次或多次,比较常用。
{}:匹配之前的项n次,n可以为0。
{m,}:匹配之前的项至少m次。
{m,n}:匹配之前的项至少m次,之多n次。
():用于创建一个匹配的子串。
|:交替匹配|两边的任意一项。
最常用的正则表达式至此基本介绍完毕。在后面的sed及awk的使用中仍然会使用到正则表达式,在相关部分又继续介绍POSIX及元字符类的表达式。这个代码阅读体验真的不是很好,所以我在文中穿插了大量图片,感兴趣的小伙伴可以移步我的同名CSDN博客,一样的精彩等你来体验。
猜你喜欢
- 2024-09-10 oracle实用sql分享:杀进程、长时间操作等等
- 2024-09-10 走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
- 2024-09-10 TCP“三次握手,四次挥手”你真的懂吗?
- 2024-09-10 制作 deb 软件包(如何制作deb包)
- 2024-09-10 详解虚拟化之KVM概念、架构、功能、常用工具及部署
- 2024-09-10 Linux find命令一定要知道这些(linux find命令的使用)
- 2024-09-10 inux 文本处理三剑客--grep/sed/awk
- 2024-09-10 db2入门必看命令清单--日常运维必需
- 2024-09-10 浅谈Linux中的&&和ll(linux中atime)
- 2024-09-10 浅谈Linux中的&&和ll,补充&和l
- 1508℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 520℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 490℃MySQL service启动脚本浅析(r12笔记第59天)
- 469℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 467℃启用MySQL查询缓存(mysql8.0查询缓存)
- 447℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 427℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 424℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)