【Linux高频命令专题(24)】grep
简述
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相关推荐
- 【Linux高频命令专题(23)】tar
概述 通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为li ...
- sort -nr作用 linux,【Linux高频命令专题(1)】sort
介绍 sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. ...
- 【Linux高频命令专题(5)】rmdir
简述 rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 命 ...
- Linux常用命令4(grep、df、du、awk、su、ll)
[grep命令] grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件 ...
- Linux高频命令汇总,Linux下高频命令分类辑录(基本使用篇)
本文目的:总结linux下常用命令的基本使用方法 文件权限: 文档权限设置命令:chmod 数字模式: 文档权限由-rwxrwxrwx十个字符组成,其中第一个代表文档类型,后面九个字符按照顺序分为三组 ...
- Linux高频命令汇总,高频Linux命令
小结一些常用的linux命令 ps ps命令是查看进程的命令这大家都知道,但是,如何查看线程? 用ps -T -p 33064 查看由进程号为33064创建的线程. grep grep命令(全面搜索正 ...
- 【Linux】一步一步学Linux——dirs命令(了解)(24)
00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 dirs命令用于显示Shell目录中的堆栈记录.不加选项时 ...
- Linux高频命令汇总,Linux高频命令
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? find find path [options] params 作用:在指定目录下查找文件1 2 3 4find / - ...
- Linux基础命令---显示文本grep
grep 按照指定的模式,在文件中搜索匹配的行,将结果显示在标准输出.另外还有两个指令egrep相当于grep –E,fgrep相当于grep -F.如果没有给出文件名,那么从标准输入读取 ...
最新文章
- 【Pyhon 3】: 170104:优品课堂: GUI -tkinter
- 《强化学习周刊》第25期:DeepMind提出无模型风险敏感强化学习、谷歌发布 RLDS数据集生态系统...
- DataGridView 判断新增行:
- 博图只能通过地址相同设备找到plc_小白求教:博途v13无法连接s7-1200,显示在网络上未找到任何设备...
- Servlet 登录时数据校验
- leveldb登山之路——cache
- windows下使用DOS命令删除大文件
- 马化腾、马云并列成为中国首富;百度回应“将上线电商直播”;.NET 5 Preview 2 发布 | 极客头条...
- Qt 设置窗体大小和背景颜色
- Appium自动化测试-iOS
- 【微信小程序+Python实现人脸识别】
- 【AI撬动地球】超级大国政治将让位于跨国AI巨头
- PDF所有目录的页码全部变为“错误!未定义书签!”
- 启动系统提示“NTLDR is missing”的解决办法
- 688. 骑士在棋盘上的概率(中等 动态规划)
- 语雀(专业的云端知识库)
- 程雷被机器人_机器人登台表演节目?程雷惨遭机器人戏耍郭德纲一旁大笑!
- 猎黑马决策股票炒股软件 主升浪战法 短线涨停
- C++变量的引用 | 使用变量的引用
- Android关于Firebase集成及示例及用法(开发反编译)
热门文章
- XenApp_XenDesktop_7.6实战篇之十五:StoreFront的配置
- 很牛逼的短链接,我们一起来晒晒短链接程序(转)
- Jmeter(六)关联之XPath提取器
- 关于Ubuntu运行级别、开机启动脚本的说明
- mysql db.opt+ (frm,MYD,MYI)备份与还原数据库
- jQuery插件开发方式
- 常用的 服务器 与 交换机
- 04 javascirpt基础知识---听课笔记
- html的分类与特点
- Qt选择文件对话框-中文路径-转std::string