首页 > 试题广场 >

写出linux命令: 在当前目录及其子目录所有的.cpp文件

[单选题]
写出linux命令: 在当前目录及其子目录所有的.cpp文件中查找字符串"example", 不区分大小写?
  • grep -i example ./*.cpp
  • grep -v example ./*.cpp
  • grep -i -v example ./*.cpp
  • grep -i -r example ./*.cpp
var头像 var
在当前目录及其子目录所有的.cpp文件中。包括子目录的话,应该是都不对。
发表于 2015-06-17 10:05:46 回复(1)
grep常用参数:
    -e :使用正则
    -i:忽略大小写
    -v:查找不包括指定内容的行
    -w:按单词查找
    -c:统计匹配次数
    -n:显示行号
    -r:递归遍历目录查找
    -A:显示匹配行前面多少行
    -B:显示匹配行后面多少行
    -C:显示匹配行前后多少行
    -include:指定匹配的文件类型
    -exclude:过滤不需要匹配的文件类型
常用栗子:
多文件查询jieni:grep jieni pika.log zhongzi.log
查找包含jieni又包含gui的行:grep jieni pika.log | grep gui
查找匹配jieni或者匹配gui的行:grep jieni | gui pika.log
显示匹配jieni行的前2行: grep jieni pika.log -A2
显示匹配行的后2行: grep jieni pika.log -B2
显示匹配行的前后两行:grep jieni pika.log -C2
不区分大小写: grep -i jieni pika.log
使用正则: grep -e '[a-z]' pika.log
查找不含jieni的行: grep -v jieni pika.log
统计jieni的行数:grep -c jieni pika.log
遍历当前目录和所有子目录匹配:grep -r jieni .
在当前目录和子目录中查找所有pika文件中查找jieni: grep -r jieni . --include "*.pika"
查找并输出到指定文件: grep jieni pika.log > result.log
查找jieni开头的行:grep ^jieni pika.log
结尾的行:grep jieni$ pika.log
查找空行: grep ^$ pika.log
                                                                                                                                                                                                   -- 杰尼杰尼!
发表于 2019-07-31 13:27:52 回复(3)
-i     ignore          忽略大小写
-r    recursion      递归
发表于 2016-02-07 15:12:26 回复(0)
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写
grep -r : 明确要求搜索子目录
发表于 2015-09-25 11:15:18 回复(0)
我就好奇这么多后缀你们是怎么记住的
发表于 2022-03-07 10:00:59 回复(0)
应该是AD,grep --help有解释
发表于 2015-05-13 11:04:02 回复(2)
-i 忽略大小写 -r 包含下一级子目录 -v 版本号
发表于 2017-05-08 12:50:53 回复(1)
亲试,要在./和*.cpp之间有空格才行,这样才是递归整个目录,否则只是当前目录哦
发表于 2021-10-27 12:41:13 回复(0)
对于很多命令,不区分大小写时候,后面的参数为:-i,对于嵌套是搜索目录以及其子目录,参数为-r,比如。循环删除某个目录下的文件以及子文件则为:rm -r /home/conf
发表于 2016-06-20 20:07:34 回复(0)
[root@localhost ~]# grep -i -R example ./ | wc -l
14
[root@localhost ~]# grep -i -r example ./ | wc -l
14
  -r 与   -R 没区别  
-R, -r, --recursive
              Read  all  files  under  each  directory,  recursively;  this  is
              equivalent to the -d recurse option.

发表于 2015-12-14 15:46:39 回复(0)
AD
发表于 2015-01-06 00:30:11 回复(0)
正确的命令是:

```bash
grep -iR "example" --include="*.cpp" .
```

具体解释如下:
- `-i` 选项表示进行搜索时不区分大小写。
- `-R` 选项表示递归地在每个子目录中搜索。
- `"example"` 是要搜索的字符串。
- `--include="*.cpp"` 表示只在以 .cpp 结尾的文件中搜索。
- `.` 表示从当前目录开始搜索。

`-v`选项在`grep`命令中表示反向选择,即匹配不包含指定字符串的行。所以`grep -v example ./*.cpp`会输出不包含"example"字符串的行。

因此,以上命令会在当前目录及其子目录中的所有 .cpp 文件中查找字符串"example",并且不区分大小写。
发表于 2023-11-14 17:20:44 回复(0)
在当前目录及其子目录所有的.cpp文件中不区分大小写地查找字符串"example":
grep -i -r example ./*.cpp

-i ignore        忽略大小写
-r recursive   递归
编辑于 2019-04-22 11:33:51 回复(0)
这题的D根本不能找子目录下的.cpp文件,只能是在当前目录下的cpp文件中找
发表于 2018-08-22 16:07:31 回复(0)
发表于 2017-07-14 15:14:11 回复(0)
 #grep   -i   -r   example   ./*.cpp   
发表于 2015-08-20 13:45:52 回复(1)