Linux命令集(Linux常用命令--grep指令篇)
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结尾的单词所在的行
除上述特定搜索方式外,还包括:
'\wc'
表示检索以c为结尾字符的字符串(\w
表示任意单词字符);
(注意区别于单词,其作用为将查找文件中包含c的字符,并组成一字符串,将c作为该字符串的末尾显示出来)'^c'
表示检索以c为开头的单词(^
表示匹配行首)'c$'
表示检索以c为结尾的单词($
表示匹配行末)- …
值得注意的是,如果正则表达式中包含特殊字符(如
$
、*
、(
等),需要进行转义才能正确匹配
