广告
返回顶部
首页 > 资讯 > 操作系统 >Linux命令_grep & 快速查找关键字、文件名
  • 906
分享到

Linux命令_grep & 快速查找关键字、文件名

linux运维服务器 2023-09-06 18:09:06 906人浏览 独家记忆
摘要

目录 1. 语法 1.1. 常用参数 2. 常见用法 2.1. 查找关键字 2.2. 取反 2.3. 额外输出关键字上下 2 行 2.4. 额外输出关键字上面 1 行 2.5. 额外输出关键字下面 1 行 2.6. 输出关键字总行数 2.7

目录

1. 语法

1.1. 常用参数

2. 常见用法

2.1. 查找关键字

2.2. 取反

2.3. 额外输出关键字上下 2 行

2.4. 额外输出关键字上面 1 行

2.5. 额外输出关键字下面 1 行

2.6. 输出关键字总行数

2.7. 输出行号

2.8. 忽略大小写

2.9. 正则匹配

3.组合使用

4. 文本三剑客其他命令


1. 语法

grep  [选项]  {关键字}  文件名

 

1.1. 常用参数

-i:忽略大小写-n:输出关键字行号-v:取反,不输出包含关键字内容-r:递归查找,用于查找多个文件是否包含某个关键字-E:使用正则表达式-A{num}:额外输出关键字下面 num 行-B{num}:额外输出关键字上面 num 行-C{num}:额外输出关键字上/下各 num 行,也可以直接使用 -{num}-c:计算关键字行数-h:不显示文件名-l:仅输出符合关键字文件名-L:输出不符合关键字文件名

 

 

 

2. 常见用法

2.1. 查找关键字

grep 'b' file.txt    # 输出包含b的行

 

 

2.2. 取反

grep -v 'b' file.txt    # 不输出包含b的行

 

 

2.3. 额外输出关键字上下 2 行

grep -C2 '3' file.txtgrep -2 '3' file.txt    # 上述简写

 

 

2.4. 额外输出关键字上面 1 行

grep -B1 '3' file.txt

 

 

2.5. 额外输出关键字下面 1 行

grep -A1 '1' file.txt

 

 

2.6. 输出关键字总行数

grep -c 'b' file.txt

 

 

2.7. 输出行号

grep -n 'b' file.txt

 

 

2.8. 忽略大小写

grep -i 'B' file.txt

 

 

2.9. 正则匹配

字符解释用法
^匹配以什么开始grep -E '^ab' 匹配以ab开头的行
$匹配以什么结尾grep -E 'ab$' 匹配以ab结尾的行
.匹配任意一个字符grep -E 'a.c' 只匹配a与c之间拥有一个字符的行
.+匹配1次或多次grep -E 'a.+c' 匹配a与c之间任意字符的行,不包含ac
*匹配0次或多次grep -E 'a*c' 匹配a与c之间任意字符的行,包含ac
|相当于 orgrep -E 'ab|ac' 匹配包含ab或ac的行
[]匹配括号中任意一个字符grep -E '[ac]' 匹配包含a或c的行
[^]匹配非括号中任意一个字符grep -E '[^ac]' 匹配不包含a或c的行
-[0-9] 匹配数字grep -E [0-9]   匹配包含数字的行
[^0-9] 匹配非数字grep -E [^0-9] 匹配不包含数字的行
[a-z] 匹配小写字符串grep -E [a-z]   匹配包含小写字符串的行
[^a-z] 匹配非小写字符串grep -E [^a-z] 匹配不包含小写字符串的行
[A-Z] 匹配大写字符串grep -E [A-Z]   匹配包含大写字符串的行
[^A-Z] 匹配非大写字符串grep -E [^A-Z] 匹配不包含大写字符串的行
()(a|b) 匹配括号中任意字符grep -E '0(a|b)1' 只匹配0a1和0b1的行
(a)+ 匹配包含1个或多个agrep -E '0(a)+1' 匹配0和1之前1个或多个a,0a1、0aa1...
{}{n} 指定匹配n个以上grep -E 'ab{2}' 匹配包含ab,且a或b连续为2次以上:abb
{n,m} 指定匹配 n-m 个grep -E 'ab{2,3}' 匹配包含ab,且a或b连续为2-3次:abb、aaab

示例:

grep -E '^b' file.txt    # 查找以b开头的行grep -E 'b$' file.txt    # 查找以b结尾的行grep -E 'a|c' file.txt   # 查找包含a或者c的行

 

 

 

3.组合使用

3.1. 查找当前目录下以a开头的文件,并显示文件名和行号

grep -rn '^1' ./

 

 

3.2. 显示指定目录下包含b的文件名

grep -rl 'b' /home/yt/shell/grep/

 

 

3.3. 查找指定文件中包含system的行/行号,不区分大小写

grep -in 'system' /etc/passwd

 

 

 

4. 文本三剑客其他命令

Linux命令_awk常用指南

Linux命令_sed常用指南

来源地址:https://blog.csdn.net/m0_61066945/article/details/126086301

--结束END--

本文标题: Linux命令_grep & 快速查找关键字、文件名

本文链接: https://www.lsjlt.com/news/397388.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作