grep and find 命令积累

 

1,查找当前目录下面,保护STAUD_PTS_EVT 字样的文件; 

在当前目录下的所有文件的文件内容中查找哪个文件的内容中有STAUD_PTS_EVT(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。

leosu@leosu:/mnt/sda3/need_bak/mot_doc/hal_doc_stapi_stapi_test/stapi/STAPI_Linux_Docs$ grep -rin  STAUD_PTS_EVT *

Binary file staudlx.pdf matches

 

当前目录下面查找所有pdf 文件, 在所有pdf 文件内容中查找  STAUD_PTS_EVT 关键字

#grep -irn STAUD_PTS_EVT `find . -name "*.pdf"`     ====== #grep -rin  STAUD_PTS_EVT *  | grep "*.pdf"   //显然前者更快

 

 #find . -name "*.pdf" | grep -irn STAUD_PTS_EVT  //此命令是查找所有*.pdf 文件, 列出这些文件名中 含有STAUD_PTS_EVT 的文件!!!!!!!


 

2, 如果查找后列出内容过多,就需要用如下命令(只列出findcontents在所在文件的出现次数):
grep -ric STAUD_PTS_EVT * | grep -v :0
3, 
如果根本不知道文件所在目录,就需要在根目录下进行查找(查找整个硬盘空间),但是由于根目录下某些文件(bin、sbin、boot、dev、initrd、lib)没有查找价值,因而要将其排除在查找范围之外# cd /
grep -rin findcontents `ls | grep -vE 'bin|boot|dev|initrd|lib'`


-i, --ignore-case
-n, --line-number
-c, --count
-r, --recursive
-v, --invert-match
-E, --extended-regexp
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern; useful to protect patterns beginning with -.
注:有c的时候n将失效


你好!关于Linux中的grep和find命令,我很乐意为您进行详细解释。 1. grep命令: grep命令用于在文本文件中搜索指定的模式,并将匹配到的行打印出来。其基本的语法如下: ``` grep [选项] 模式 [文件...] ``` 选项: - `-i`:忽略大小写进行匹配。 - `-v`:反向选择,即打印不匹配的行。 - `-r`:递归地搜索目录下的所有文件。 - `-l`:仅打印匹配到的文件名。 - `-n`:显示匹配到的行及其行号。 示例: ``` grep "pattern" file.txt # 在file.txt文件中搜索包含"pattern"的行 grep -i "pattern" file.txt # 忽略大小写,在file.txt文件中搜索包含"pattern"的行 grep -r "pattern" /path/to/dir # 在目录/path/to/dir及其子目录中递归搜索包含"pattern"的行 grep -l "pattern" file1.txt file2.txt # 仅打印匹配到"pattern"的文件名 grep -n "pattern" file.txt # 显示匹配到的行及其行号 ``` 2. find命令: find命令用于按照指定的条件搜索文件和目录。其基本的语法如下: ``` find [路径] [表达式] ``` 路径:指定搜索的起始路径。 表达式:用于指定搜索的条件。 示例: ``` find /path/to/search -name "*.txt" # 在/path/to/search路径下搜索所有扩展名为.txt的文件 find /path/to/search -type d # 在/path/to/search路径下搜索所有目录 find /path/to/search -type f -size +10M # 在/path/to/search路径下搜索大小超过10M的文件 find /path/to/search -user username # 在/path/to/search路径下搜索所有属于指定用户的文件 ``` 希望以上解释对您有帮助。如果您还有其他问题,请随时提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值