(一)linux三剑客之grep
给自己提出以下6个问题,看自己是否真正掌握了grep
[1] grep 是什么?
[2] grep 有什么作用 ?
[4] grep 常用于何处 ?
[5] grep 的基本用法 ?
[6] grep 实例用法 ?
[6] grep 技术常用【收藏】
[1] grep 是什么?
- grep是一个文本搜索工具;
- grep (global regular expression print,全局正则表达式输出) 的搜索工具;
它的家族有三大类:grep 、egrep 、fgrep
通常我们可以这样认为: egrap相当于grap -E , fgrap 相当于 grap -F
egrep其实是grap的优化版,改良了许多传统 grep 不能或不便的操作:
例如:
grep 之下不支持 ? 与 + 这两种 modifier, 但 egrep 则可。
grep 不支持 a|b 或 (abc|xyz) 这类"或一"比对, 但 egrep 则可。
grep 在处理 {n,m} 时, 需用 \{ 与 \} 处理, 但 egrep 则不需。
fgrap 不作RE处理,表达式仅作一般字符串处理,所有meta失去功能
【2】grep 的作用?
- grep 最大的作用就是它得搜索功能!将匹配到内容这一行输出,即搜索到的内容列出,并不会改动里面内容,并且不能根据目录进行搜索;
比如:one.c内容
void class()
{
printf("oneone");
}
grep "class" one.c
- void class() //结果
若是用grap进行目录搜索会报错
grap "class" ./
grep: ./: Is a directory
【3】grep 常用于何处 ?
常用于文件搜索
【5】grep 的基本用法?
grep "搜索内容" 搜索文本
这里很值得深入思考的是,grep后面跟着双引号,单引号,不带引号,有什么区别?
以及,grep的正则表达式后面跟着双引号,单引号又有什么区别? 可以不带引号吗?
为此我也研究了很久,得出结论
grep “linux" oytt.c //双引号
grep 'linux' oytt.c //单引号
单引号是将引号的内容原封不动的搜索出来
grep linux oytt.c //不带引号
这样写和上面两种区别不大,但是若是想搜索有空格的子的字符串就无能为力了,比如想在oytt.c文件中搜索含有oytt younger的文字
grep oytt younger oytt.c就会报错No such file or directory
因此若是搜索连续的字符串,数字,变量,和单引号的效果是一样的,若是想搜索非连续的,则需要用单引号或者双引号。
-e : 使用正则搜索
-i : 不区分大小写
-v : 查找不包含指定内容的行
-w: 按单词搜索
-c: 统计匹配到的次数
-n: 显示行号
-r: 逐层遍历目录查找
-A: 显示匹配行及后面多少行, 如: -A3, 则表示显示匹配行及后3行
-B: 显示匹配行及前面多少行, 如: -B3, 则表示显示匹配行及前3行
-C: 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行
--color: 匹配到的内容高亮显示
--include: 指定匹配的文件类型
--exclude: 过滤不需要匹配的文件类型
【6】grep 的实例用法【收藏】
grep -A
grep -A 'one' oytt.txt
grep -A / grep -B/ grep -C 都是一套类似的用法
grep -a
grep -a 'one' oytt.txt
Binary file one.c matches 若是有这种报错情况,就需要grep -a
grep -v
grep -v 'one' oytt.txt
输出除了one以外的其它数据
可以配合其它语句使用 cat oytt.txt | grep -v 'one' 非常实用
grep -l
grep -l oytt1.txt oytt2.txt
不能根据路径,必须一一把文件列出来
grep -n
grep -n 'one' oytt.txt
grep -e
- grep -e 'one' -e 'two' oytt.txt
- 同时查找多个目标
grep -c 计算匹配到的行数量
- grep -c 'one' oytt.txt //结果:1
grep -w
grep -w "one" oytt.txt
整个字符串匹配,只能搜到到one的单词,而不能搜索到类似oneFunc的单词
显示行号之后的行号
二进制文件不被忽略
反向查找,也就是输出不包含指定的内容
列出包含该内容的文集
匹配行号
(一)linux三剑客之grep的更多相关文章
- (转)不看绝对后悔的Linux三剑客之grep实战精讲
不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...
- Linux 三剑客之grep
目录 Linux 三剑客之grep 搭配命令-find 三剑客之grep: 正则表达式: Linux 三剑客之grep 搭配命令-find find命令是根据文件的名称或者属性查找文件,并不会显示文件 ...
- linux三剑客之grep
linux基础三剑客之grep 1.grep命令 基本介绍 grep命令是文本本过滤工具,是基于一个模式匹配文件的每一行,grep分类:egrep个fgrep. grep英文名:Global sea ...
- Linux三剑客之grep常用参数详细总结
三剑客grep总结 grep : Linux三剑客老三 过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...
- Linux三剑客老三---grep
1.Linux三剑客老三 过滤需要的内容,例子:grep -v oldboy hello.txt grep一般常用参数: -a:在二进制文件中,以文本文件的方式搜索数据. -c:计算找到"搜 ...
- Linux三剑客之grep 与 egrep
grep: Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具; *(grep, egrep, fgrep) sed:stream editor,文本编辑工具: awk:Lin ...
- linux三剑客之一grep
正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源 正则表达式这个名词,相信 ...
- Linux三剑客:grep、awk、sed
---------------------------------------------------------------------------------------------------- ...
- Linux 三剑客之 grep 使用详解
Linux 最重要的三个命令在业界被称为三剑客,它们是:awk.sed.grep.sed 已经在上篇中讲过,本文要讲的是 grep 命令. 我们在使用 Linux 系统中,grep 命令的使用尤为频繁 ...
- linux 三剑客命令(grep,sed ,awk)
grep 命令 :强大的文本’搜索’工具 1.grep -n 'word' file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号. 2 ...
随机推荐
- 仅需60秒,使用k3sup快速部署高可用K3s集群
作者简介 Dmitriy Akulov,连续创业者,16岁时搭建了开源CDN公共服务jsDelivr的v1版本.目前是边缘托管平台appfleet创始人. 原文链接: https://ma.ttias ...
- 微信小程序入门知识点总结
微信小程序入门知识点总结 前情介绍 微信小程序就不多介绍了,我们想要开发微信小程序首先得到微信公众平台 下方的小程序处注册相关账号并登录,接着填写小程序相关资料.在设置处可找到AppID用以开发微 ...
- 写一个LRU算法的记录
今天简单记录一下,利用Scala解答的一道LRU题目,原题为LeetCode的第146题,是一道设计LRU的题目. 题目详情 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机 ...
- winform 数据(双向)绑定 快速更新实体
写点东西感觉特别累,也已经很久没写了. 最近在做一个winform类型的系统,其涉及到大量的表,有些表又包含大量的字段,所以当添加.更新实体时便会十分的繁琐,一方面:需要把界面上的字段绑定到对应的实体 ...
- 9.快照持久化和AOF持久化
持久化功能redis为了内部数据的安全考虑,会把本身的数据以文件形式保存到硬盘中一份,在服务器重启之后会把硬盘中的数据恢复到内存(redis)的里边. 数据保存到硬盘的过程就称为“持久化”效果. re ...
- 线程池 & 线程调度
线程池1. 第四种获取线程的方法:线程池,一个 ExecutorService,它使用可能的几个池线程之 一执行每个提交的任务, 通常使用 Executors 工厂方法配置. 2. 线程池可以解决两个 ...
- nginx学习资料整理一
一.安装运行 1.1.安装环境支撑 1.gcc 环境,一般情况linux 系统自带该环境,也可自行下载安装使用新版本: 2.pcre 环境,一般需自行安装,其是一个perl库,包含正则表达式等功能,h ...
- 关于替换“c2a0”十六进制字符的方法
一.背景:在爬取网络小说生成的文件中,发现有些空格没法替换,使用十六进制编辑器查看,发现这些空格字符的十六进制值是“c2a0”,其来源是网页控制的特殊字符,这是一个叫做Non-breaking spa ...
- Take advantage of Checkra1n to Jailbreak iDevice for App analysis
An unpatchable bootrom exploit called "checkm8" works on all iDevices up until the iPhone ...
- 50个SQL语句(MySQL版) 问题二十
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...