编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
时间: 2023-03-13 12:26:07 浏览: 120
可以使用Python的os模块来实现,示例代码如下:import os target_str = 'example'for root, dirs, files in os.walk('.'):
for file in files:
if target_str in file:
print(os.path.join(root, file))
相关问题
编写一个shell脚本,在当前目录中查找包含字符串“struct”的C语言文件,找到文件后将文件名显示,并把该文件内容显示出来。 在自己的笔记本电脑上虚拟机上,先创建一个以自己姓名全拼命名的.c文件,文件中需包含struct字符。
好的,我可以为你编写这个脚本。你可以在终端中执行以下命令来创建一个以自己姓名全拼命名的.c文件:
```
echo "struct example_struct { int example_field; };" > yourfullname.c
```
这个命令会在当前目录下创建一个名为`yourfullname.c`的文件,并在其中写入一个包含`struct`字符串的C语言示例代码。
接下来,你可以使用以下命令来查找包含`struct`字符串的C语言文件并显示它们的文件名和内容:
```
grep -rl "struct" ./*.c | while read file; do echo "File: $file"; cat "$file"; done
```
这个命令会在当前目录及其子目录中查找包含`struct`字符串的C语言文件,并对每个文件执行以下操作:
1. 显示文件名。
2. 显示文件内容。
请注意,这个脚本只会显示包含`struct`字符串的C语言文件,而不会显示其他类型的文件。如果你想要搜索其他类型的文件,可以将`./*.c`替换为想要搜索的文件类型的通配符。
编写一个shell程序,将指定目录及其子目录中的包含字符串root的文本文件找出来
在Shell脚本中编写查找含有特定字符串(如"root")的文本文件的程序,可以使用`find`命令配合通配符`*`。下面是一个简单的例子:
```bash
#!/bin/bash
# 指定要搜索的根目录
search_dir="/path/to/your/directory"
# 使用find命令查找包含字符串"root"的文本文件
grep_root_files=$(find $search_dir -type f -name "*root*" -exec grep -l "root" {} \;)
# 输出找到的文件路径
echo "Found the following files containing 'root':"
echo "$grep_root_files"
```
在这个脚本中,`find`命令会递归地搜索指定目录及其所有子目录(`-type f`表示只查找普通文件),然后通过`-name "*root*"`匹配包含"root"的文件名。`-exec grep -l "root" {} \;`用于在找到的每个文件中查找"root"并返回包含该字符串的文件的完整路径。
阅读全文