简述

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

命令格式

grep [option] pattern file

命令参数

-a   --text   #不要忽略二进制的数据。
-A<显示行数>   --after-context=<显示行数>   #除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b   --byte-offset   #在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数>   --before-context=<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前的内容。
-c    --count   #计算符合样式的列数。
-C<显示行数>    --context=<显示行数>或-<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作>      --directories=<动作>   #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式>  --regexp=<范本样式>   #指定字符串做为查找文件内容的样式。
-E      --extended-regexp   #将样式为延伸的普通表示法来使用。
-f<规则文件>  --file=<规则文件>   #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F   --fixed-regexp   #将样式视为固定字符串的列表。
-G   --basic-regexp   #将样式视为普通的表示法来使用。
-h   --no-filename   #在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H   --with-filename   #在显示符合样式的那一行之前,表示该行所属的文件名称。
-i    --ignore-case   #忽略字符大小写的差别。
-l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。
-L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。
-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。
-q   --quiet或--silent   #不显示任何信息。
-r   --recursive   #此参数的效果和指定“-d recurse”参数相同。
-s   --no-messages   #不显示错误信息。
-v   --revert-match   #显示不包含匹配文本的所有行。
-V   --version   #显示版本信息。
-w   --word-regexp   #只显示全字符合的列。
-x    --line-regexp   #只显示全列符合的列。
-y   #此参数的效果和指定“-i”参数相同。

常用范例

# 查找指定进程(这条命令本身也会形成一个进程)
ps -ef | grep svn# 查找指定进程(-c 前后都可以)
ps -ef|grep svn -c
ps -ef|grep -c svn# 从文件中读取关键词进行搜索
cat config.php | grep -f object.txt  // object文件是需要检索的关键词组合(以换行分割)# 从文件中读取关键词进行搜索 且显示行号
cat config.php | grep -nf object.txt  // 注意n和f的位置不能调换# 从文件中查找关键词
grep 'api' config.php  // 注意是区分大小写的# 还可以从多个文件中查找
grep 'linux' test.txt test2.txt[root@localhost test]# grep -n 'linux' test.txt test2.txt
test.txt:1:hnlinux
test.txt:4:ubuntu linux
test.txt:7:linuxmint
test2.txt:1:linux
[root@localhost test]# grep 'linux' test.txt test2.txt
test.txt:hnlinux
test.txt:ubuntu linux
test.txt:linuxmint
test2.txt:linux# grep不显示本身进程 (加-v就是显示除匹配之外的)
ps aux | grep ssh | grep -v "grep"# 显示包含ed或者at字符的内容行 (不加-E就按字符串搜索,加了按正则搜索)
[root@localhost test]# cat test.txt |grep -E "ed|at"
redhat
Redhat# 输出非u开头的行内容
cat test.txt |grep ^[^u]# 显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行
grep '[a-z]\{7\}' *.txt# 搜索当前目录以及子目录下的js文件中
grep -iR --include="*.js" ".proof-imgs a"

转载于:https://www.cnblogs.com/nixi8/p/6728719.html

【Linux高频命令专题(24)】grep相关推荐

  1. 【Linux高频命令专题(23)】tar

    概述 通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为li ...

  2. sort -nr作用 linux,【Linux高频命令专题(1)】sort

    介绍 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. ...

  3. 【Linux高频命令专题(5)】rmdir

    简述 rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 命 ...

  4. Linux常用命令4(grep、df、du、awk、su、ll)

    [grep命令] grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件 ...

  5. Linux高频命令汇总,Linux下高频命令分类辑录(基本使用篇)

    本文目的:总结linux下常用命令的基本使用方法 文件权限: 文档权限设置命令:chmod 数字模式: 文档权限由-rwxrwxrwx十个字符组成,其中第一个代表文档类型,后面九个字符按照顺序分为三组 ...

  6. Linux高频命令汇总,高频Linux命令

    小结一些常用的linux命令 ps ps命令是查看进程的命令这大家都知道,但是,如何查看线程? 用ps -T -p 33064 查看由进程号为33064创建的线程. grep grep命令(全面搜索正 ...

  7. 【Linux】一步一步学Linux——dirs命令(了解)(24)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 dirs命令用于显示Shell目录中的堆栈记录.不加选项时 ...

  8. Linux高频命令汇总,Linux高频命令

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? find find path [options] params 作用:在指定目录下查找文件1 2 3 4find / - ...

  9. Linux基础命令---显示文本grep

    grep       按照指定的模式,在文件中搜索匹配的行,将结果显示在标准输出.另外还有两个指令egrep相当于grep –E,fgrep相当于grep -F.如果没有给出文件名,那么从标准输入读取 ...

最新文章

  1. 【Pyhon 3】: 170104:优品课堂: GUI -tkinter
  2. 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...
  3. DataGridView 判断新增行:
  4. 博图只能通过地址相同设备找到plc_小白求教:博途v13无法连接s7-1200,显示在网络上未找到任何设备...
  5. Servlet 登录时数据校验
  6. leveldb登山之路——cache
  7. windows下使用DOS命令删除大文件
  8. 马化腾、马云并列成为中国首富;百度回应“将上线电商直播”;.NET 5 Preview 2 发布 | 极客头条...
  9. Qt 设置窗体大小和背景颜色
  10. Appium自动化测试-iOS
  11. 【微信小程序+Python实现人脸识别】
  12. 【AI撬动地球】超级大国政治将让位于跨国AI巨头
  13. PDF所有目录的页码全部变为“错误!未定义书签!”
  14. 启动系统提示“NTLDR is missing”的解决办法
  15. 688. 骑士在棋盘上的概率(中等 动态规划)
  16. 语雀(专业的云端知识库)
  17. 程雷被机器人_机器人登台表演节目?程雷惨遭机器人戏耍郭德纲一旁大笑!
  18. 猎黑马决策股票炒股软件 主升浪战法 短线涨停
  19. C++变量的引用 | 使用变量的引用
  20. Android关于Firebase集成及示例及用法(开发反编译)

热门文章

  1. XenApp_XenDesktop_7.6实战篇之十五:StoreFront的配置
  2. 很牛逼的短链接,我们一起来晒晒短链接程序(转)
  3. Jmeter(六)关联之XPath提取器
  4. 关于Ubuntu运行级别、开机启动脚本的说明
  5. mysql db.opt+ (frm,MYD,MYI)备份与还原数据库
  6. jQuery插件开发方式
  7. 常用的 服务器 与 交换机
  8. 04 javascirpt基础知识---听课笔记
  9. html的分类与特点
  10. Qt选择文件对话框-中文路径-转std::string