linux的grep命令详解_grep -v命令

linux的grep命令详解_grep -v命令文章目录一、grep常用命令1、语法2、范例二、grep的一些高级参数1、语法2、范例三、基础正则表达式练习1、与中括号`[]`结合2、与反向选择^结合使用3、与行首`^`和行尾$字符结合4、任意一个字符`.`与重复字符`*`5、`{}`限定连续字符范围一、grep常用命令grep的功能是分析一行信息,若其中有我们所需要的信息,就将其拿出来。需要注意的是它以整行为单位…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、grep常用命令

grep的功能是分析一行信息,若其中有我们所需要的信息,就将其拿出来。

需要注意的是它以整行为单位进行数据的选取。

1、语法

grep [-acinv] [--color=auto]  '要查找的字符串'  filename
参数 说明
-a 将binary文件以text文件的方式查找数据
-c 计算找到查找字符串的次数
-i 忽略大小写的不同
-n 输出行号
-v 反向选择,显示出没有查找字符串的内容的行
–color-auto 将找到的字符串以特殊颜色显示

2、范例

1、先将/etc目录下的man.config文件拷贝至/tmp文件夹下,来作实验:

cd  /tmp
cp  /etc/man.config  .

2、将此文件中有包含MANPATH的那一行取出来。

cat manpath.config | grep 'MANPATH'

3、与上例子相反,只要没有包含MANPATH的那一行就取出来。

cat manpath.config| grep -v 'MANPATH'

二、grep的一些高级参数

1、语法

grep [-A] [-B] [--color=auto]  '查找字符串' filename'
  • -A:后面可加数字,为after的意思,除了列出该行以外,后续的n行也列出来。
  • -B:后面可加数字,为before的意思,除了列出该行以外,前面的n行也列出。

2、范例

1、用dmesg列出内核信息,然后用grep找出包含eth的那行,并且显示行号。而且将关键字的前2行和后3行也列出来。

dmesg | grep -n -A3 -B2 --color=auto 'eth'

其中的 | 是管道符,用于把左边输出的内容传递给右边的命令
在这里插入图片描述

在关键字的显示上,grep可以用—color=auto来将关键字用特殊颜色显示。但是每次使用grep都得加上这个信息很麻烦,于是可以用alias进行一下处理就OK了。

可以在~/.bashrc内加上这一行:alias grep=‘grep –color=auto’。

三、基础正则表达式练习

1、与中括号[]结合

  • 查找包含[]中某一个字符的内容
比如我要查找man或者men字符串,可以这样来查找:
grep -n  'm[ae]n'  manpath.config

查找包含man且man前面有数字的行:
grep -n '[0-9]man'  manpath.config

Note:中括号[]里面不论有几个字符,它都只代表某一个字符。

2、与反向选择^结合使用

  • 查找不包含指定字符的内容
查找包含man而且前面没有/的那一行:
grep -n  '[^/]man'  manpath.config

在这里插入图片描述

查找包含man但是前面不是小写字符的那一行:
grep -n  '[^a-z]man'  manpath.config

3、与行首 ^ 和行尾 $ 字符结合

列出行首为MANPATH_MAP的行:
grep -n  '^MANPATH_MAP' manpath.config

列出开头是大写字符的那一行:
grep -n '^[A-Z]' manpath.config

列出开头不是英文字母的行:
grep -n  '^[^a-zA-Z]'  manpath.config

^ 符号在字符集合(中括号[])之内和外面是不同的!!!

[]里面代表反向选择,在[]外面代表定位在行首的意思

反过来思考,使用$来查找行尾字符

找出行尾结束符为点.的行:
grep -n '\.$' manpath.config
因为小数点具有特殊的意义,所以必须用转义字符加以解除其特殊意义。

查找出空白行:
grep -n  '^$'  manpath.config

4、任意一个字符.与重复字符*

在bash当中,通配符*可以用来代表任意(0或多个)字符,但是正则表达式并不是通配符,两者之间是不相同的。

在正则表达式当中:

  • .代表绝对有一个字符的意思
  • *代表重复前一个字符0到无穷多次的意思,为组合形态

实例:

查找包含一个o以上的行,需要oo*:
grep -n 'oo*' manpath.config

查找以g开头与以g结尾,中间至少存在一个o的行:
grep -n  'goo*g'  manpath.config

5、{}限定连续字符范围

我们可以利用.*来设置0到无穷多个重复字符。那如果要限制一个范围区间内的重复字符呢?

比如要找出2-5个o的连续字符串,就要用到限定范围的字符{}了。

但是{}的符号在shell有特殊意义,因此要用到转义字符\。

实例:

找出g后面有两个到五个o,后面再接一个g的字符串:
grep -n 'go\{2,5\}g'  manpath.config

如果是2个以上呢:
grep -n  'go\{2,\}g'  manpath.config
这样就OK了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179045.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 查理德弗曼学习法

    查理德弗曼学习法费曼学习法的灵感源于诺贝尔物理奖获得者理查德·费曼(RichardFeynman),运用费曼技巧,你只需花上20分钟就能深入理解知识点,而且记忆深刻,难以遗忘。知识有两种类型,我们绝大多数人关注的都是错误的那类。第一类知识注重了解某个事物的名称。第二类知识注重了解某件事物。这可不是一回事儿。著名的诺贝尔物理学家理查德·费曼(RichardFeynman)能够理解这二者间的差别,这也是他成功最重要的原因之一。事实上,他创造了一种学习方法,确保他会比别人对事物了解的更透彻。费曼学习法可以简化为四个单词:C

    2022年6月14日
    37
  • IDEA激活成功教程后一直提示JetbrainsAgent 相关的弹框问题

    IDEA激活成功教程后一直提示JetbrainsAgent 相关的弹框问题激活成功教程后打开IDEA就弹框,关闭之后会自动打开浏览器,隔一会也会弹出来 也是一样的问题一开始是说把txt 和 jar 文件放一个路径下之类的方法,几经波折,发现没任何用处~最后各种搜索排查,在设置下更改配置就不弹啦~settings设置下搜索agent 取消”Instrumenting agent(requires debugger restart)”在 Reload classes after compilation:选择第一个 Always…

    2022年8月19日
    9
  • python题库刷题训练选择题_python值得学吗

    python题库刷题训练选择题_python值得学吗学python嘻嘻,每题第一个是自己的代码,后面的是看见有些好的代码就顺手保存一波了~侵删1916购物1956费马大定理扩展1957幼儿园霸王***********************

    2022年8月6日
    5
  • MySQL和SQLyog安装配置教程

    MySQL和SQLyog安装配置教程文章目录1.MySQL和配套SQLyog压缩包2.MySQL的安装配置3.SQLyog(小海豚)安装4.最后成功样子5.前期练习可能会需要的脚本需要的可以下载:1.MySQL和配套SQLyog压缩包 百度网盘资源链接:链接:https://pan.baidu.com/s/15r2rmmfzFV8oB5DgdbgwiQ 提取码:3s5u2.MySQL的安装配置可参考文章1.解压压缩包后:复制bin文件的路径2.以管理员身份打开命令提示符进入刚复制的bin文件目录然后按步骤安装MyS

    2022年5月28日
    74
  • qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示[通俗易懂]

    qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示[通俗易懂]恢复内容开始qt中QHBoxLayout或QVBoxLayout布局内控件的动态生成与显示打个比方,我现在写个小例子,这个小例子是这样的,整个界面分为俩个部分,分为上半部分和下半部分,上半部分为5

    2022年8月4日
    10
  • 数据挖掘面试 150 道题(附答案)

    数据挖掘面试 150 道题(附答案)单选题1.某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A)A.关联规则发现B.聚类C.分类D.自然语言处理2.以下两种描述分别对应哪两种对分类算法的评价标准?(A)(a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。(b)描述有多少比例的小偷给警察抓了的标准。A.Precision,…

    2022年6月26日
    80

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号