Linux命令集(Linux常用命令--grep指令篇)

本文介绍了Linux中grep命令的常用用法,包括搜索单个文件、指定目录下所有文件以及递归搜索目录中的字符串。此外,还讲解了如何搜索包含中文字符的内容以及使用特定搜索,如单词边界和正则表达式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux常用命令集(grep指令篇)


如下为笔者总结出在linux中最常用的grep指令集
🌟希望能够帮助正在Linux路上奋斗的你🌟


3.grep(global regular expression print)

条件搜索指定字符串或正则表达式,输出符合条件的全部行内容

1. 搜索指定文件中的某个字符串

grep "string" filename.py
>>**************string**************
>>...

上述命令实现搜索 filename.py 文件中所有包含字符串 "string" 的行,并全部输出到终端上.例:


2. 搜索指定目录下所有文件中的某个字符串

grep "string" /root/workspace/*
>>**************string**************
>>...

上述命令将在 /root/workspace/ 目录下所有文件中搜索包含字符串 "string" 的行,并输出到终端上.
值得注意的是如果 /root/workspace/ 该目录下包含子文件夹或其他子目录,该命令不会显示出其子目录或文件夹中所有包含字符串 "string" 的行,而是输出其子目录绝对路径并显示告知(但仍会显示该文件夹下同级目录文件中包含字符串 "string" 的行).

(1)下述目录中仅包含文件夹(或包含文件中不存在包含字符串 "string" 的行).例:

(2)下述文件夹中同时包含文件及文件夹.例:


3. 搜索指定目录及其子目录下所有文件中的某个字符串

grep "string" -r /root/workspace/*
>>**************string**************
>>...

区别于2.
考虑到搜索需求的不同,3.实现了搜索指定目录及其子目录中所有文件中包含 “string” 的行

实际上更常用2.命令;对于3.命令,在未知文件容量的情况下可能会输出过量无效信息
同时对于需要查找全目录下的某字符串更普适的方法为先输出包含该字符的所有文件或文件夹,再cd至最远目标路径下通过2.命令查找该行,从而避免过多无效信息的输出


4. 搜索包含中文的文件

grep -P "[\x{4e00}-\x{9fa5}]" filename.py
>> # 文件路径及文件名
   # 1. 读取摄像头
   #目前使用file文件大小限定
   # 2. 获取图像的属性(宽和高,),并将其转换为整数
   # 3. 创建保存视频的对象,设置编码格式,帧率,图像的宽高等
    ...

注释:
-P参数表示使用 Perl 兼容正则表达式
[\x{4e00}-\x{9fa5}] 表示中文字符的Unicode范围,即\x{4e00}\x{9fa5}之间的所有字符(包括汉字、标点符号等)
• 查找特定中文字符时,在正则表达式中使用普通的中文字符即可,无需像查找全部中文字符那样使用Unicode转义序列

输出如下:

(1)搜索特定中文字符

值得注意的是,若需要搜索特定中文字符,可通过正则表达式直接搜索字符而无需转换Unicode
例如搜索文件中的字符 “是你呀星途”

grep -P "是你呀星途" filename.py
>> # generated by "是你呀星途"
   # 你没看错就是我 -line"是你呀星途"
   # 欸别走,接着往下看下去呗 -line"是你呀星途"

(2)或是如下指令:

grep -E "是你呀星途" filename.py
>> # generated by "是你呀星途"
   # 你没看错就是我 -line"是你呀星途"
   # 欸别走,接着往下看下去呗 -line"是你呀星途"

(1)(2)输出结果完全相同


5. 特定搜索

grep '\bc' filename.py
>>************  c******** c***
>>...

上述命令中的\b表示单词边界,用来避免匹配单词内部的字符
'\bc'即表示检索文件中所有以c开头的单词所在的行
'c\b'即表示检索文件中所有以c结尾的单词所在的行
除上述特定搜索方式外,还包括:

  1. '\wc'表示检索以c为结尾字符的字符串(\w 表示任意单词字符);
    (注意区别于单词,其作用为将查找文件中包含c的字符,并组成一字符串,将c作为该字符串的末尾显示出来)
  2. '^c'表示检索以c为开头的单词(^表示匹配行首)
  3. 'c$'表示检索以c为结尾的单词($表示匹配行末)

值得注意的是,如果正则表达式中包含特殊字符(如 $*( 等),需要进行转义才能正确匹配



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是你呀星途

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值