linux 检索字符串 grep

本文介绍了Linux系统中使用grep命令查找包含特定字符串文件的方法。如使用grep -r -n \phpernote\ *可在当前目录查找含该字符串的文件,还介绍了 -R、-i等参数的作用,以及或、与操作等查找方式,还提及特殊符号和xargs配合使用的查找方法。

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

以下内容转载自 https://www.phpernote.com/linux/1312.html

linux系统中,如果你想在当前目录下查找所有包含"phpernote"字符串的文件,可以这样输入命令:

grep -r -n "phpernote" *

* : 表示当前目录所有文件,也可以是某个文件名,可省略

-r  是递归查找

-n  是显示行号

-R  查找所有文件包含子目录

-i  忽略大小写,默认情况区分大小写

-l  只列出匹配的文件名

-L  列出不匹配的文件名

-w  只匹配整个单词,而不是字符串的一部分(如匹配 'magic',而不是 'magical')

-C number  匹配的上下文分别显示[number]行

(1)当然还有一些更有意思的查找方法,例如:

grep "phpernote" | "php" *

查找当前目录下包含了phpernote字符或者包含了php字符的文件

grep "phpernote" | grep "php" *

查找当前目录下既包含phpernote字符又包含php字符的文件

(2)这里还有些用于搜索的特殊符号: 

\< 和 \> 分别标注单词的开始与结尾。

例如: 

grep man * 会匹配 'Batman'、'manic'、'man'等

grep '\

grep '\' 只匹配'man',而不是'Batman'或'manic'等其他的字符串。 

'^':指匹配的字符串在行首

'$':指匹配的字符串在行尾

当然还可以通过xargs配合grep查找文件列表,例如:

find -type f -name '*.java'|xargs grep 'http'

 

1、或操作

grep -E '123|abc' filename  // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename    // 用egrep同样可以实现
awk '/123|abc/' filename   // awk 的实现方式

2、与操作

grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行。

3、其他操作

grep -i pattern files   //不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files   //只列出匹配的文件名,
grep -L pattern files   //列出不匹配的文件名,
grep -w pattern files  //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files //匹配的上下文分别显示[number]行,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值