高清的建设工程人员查询_带着购物系统回到80年代_如何引流推广产品_谷歌ads
2025/2/26 4:41:14
来源:https://blog.csdn.net/qq_57446171/article/details/145035551
浏览:
次
关键词:高清的建设工程人员查询_带着购物系统回到80年代_如何引流推广产品_谷歌ads
高清的建设工程人员查询_带着购物系统回到80年代_如何引流推广产品_谷歌ads
grep
命令
- 功能:
grep
是一个文本搜索工具,用于在文件或输入流中搜索匹配特定模式的文本行. - 使用场景:
- 文本内容搜索:在文件中查找包含特定字符串或正则表达式的行,常用于日志文件分析、代码查找等场景.
- 过滤输出:从命令的输出中过滤出包含特定内容的行,例如,将
ls
命令的输出通过 grep
过滤出包含特定文件名的行.
- 特点:
- 模式匹配:支持正则表达式,可以进行复杂的文本匹配和搜索.
- 文件操作:可以直接在文件中进行搜索,也可以从标准输入中读取数据进行搜索.
- 输出结果:输出匹配到的文本行,可以指定输出行号、高亮显示匹配内容等.
-
常用选项
-i
:忽略大小写,进行不区分大小写的搜索.-v
:反向搜索,显示不匹配的行.-c
:统计匹配行的数量,而不是显示匹配的行.-n
:显示匹配行的行号.-l
:只列出包含匹配行的文件名,而不是显示匹配的行.-r
或 -R
:递归搜索,搜索指定目录下的所有文件.-w
:仅匹配整个单词,而不是部分单词.-E
:使用扩展的正则表达式(ERE),允许使用更多的正则表达式元字符.-o
:仅显示匹配的部分字符串,而不是整行.-
基本用法
- 搜索文件中的文本:
grep "pattern" filename
例如,搜索文件 example.txt
中包含 "hello" 的行: grep "hello" example.txt
- 忽略大小写搜索:
grep -i "pattern" filename
例如,不区分大小写地搜索 "Hello": grep -i "Hello" example.txt
- 反向搜索:
grep -v "pattern" filename
例如,显示不包含 "error" 的行: grep -v "error" log.txt
- 统计匹配行数:
grep -c "pattern" filename
例如,统计文件中包含 "success" 的行数: grep -c "success" log.txt
- 显示行号:
grep -n "pattern" filename
例如,显示包含 "warning" 的行及其行号: grep -n "warning" log.txt
- 递归搜索目录:
grep -r "pattern" directory
例如,递归搜索当前目录下所有文件中包含 "todo" 的行: grep -r "todo" .
-
高级用法
- 使用正则表达式:
grep "pattern.*pattern" filename
例如,搜索包含 "start" 和 "end" 且中间有任意字符的行: grep "start.*end" example.txt
- 组合多个选项:
grep -iEn "pattern" filename
例如,不区分大小写地搜索 "Error",显示行号,并使用扩展正则表达式: grep -iEn "Error" log.txt
- 管道使用:
command | grep "pattern"
例如,将 ls
命令的输出通过 grep
过滤出包含 "txt" 的文件: ls | grep "txt"
find
命令
- 功能:
find
是一个文件查找工具,用于在文件系统中查找符合特定条件的文件. - 使用场景:
- 文件定位:在目录树中查找具有特定名称、类型、大小、修改时间等属性的文件,常用于文件管理和维护.
- 批量操作:结合其他命令对查找到的文件进行批量操作,如复制、移动、删除等.
- 特点:
- 条件组合:支持多种查找条件的组合使用,如文件名、文件类型、文件大小、修改时间等.
- 目录遍历:可以递归地遍历目录树,查找所有符合条件的文件.
- 执行动作:可以对查找到的文件执行指定的动作,如使用
-exec
选项执行其他命令. -
常用选项和表达式
-name
:按文件名查找,支持使用通配符(如 *
、?
)进行匹配.-type
:按文件类型查找,常见的文件类型有: f
:普通文件d
:目录l
:符号链接c
:字符设备文件b
:块设备文件
-size
:按文件大小查找,支持使用单位(如 +10M
表示大于 10MB,-10M
表示小于 10MB).-mtime
:按文件内容最后修改时间查找,支持使用天数(如 -mtime +7
表示超过 7 天未修改的文件).-atime
:按文件最后访问时间查找.-ctime
:按文件状态最后改变时间查找.-user
:按文件所有者查找.-group
:按文件所属组查找.-perm
:按文件权限查找.-exec
:对查找到的文件执行指定的命令,命令后面需要跟一个 \;
表示命令结束.-print
:默认动作,显示查找到的文件路径.-delete
:删除查找到的文件(谨慎使用).-
基本用法
- 按文件名查找:
find <目录> -name <文件名模式>
例如,在当前目录及其子目录中查找所有扩展名为 .txt
的文件: find . -name "*.txt"
- 按文件类型查找:
find <目录> -type <文件类型>
例如,查找当前目录及其子目录中的所有目录: find . -type d
- 按文件大小查找:
find <目录> -size <大小>
例如,查找当前目录及其子目录中大于 10MB 的文件: find . -size +10M
- 按修改时间查找:
find <目录> -mtime <天数>
例如,查找当前目录及其子目录中最近 7 天内修改过的文件: find . -mtime -7
- 组合条件查找:
find <目录> -name <文件名模式> -type <文件类型> -size <大小>
例如,查找当前目录及其子目录中扩展名为 .log
的普通文件,且文件大小大于 5MB: find . -name "*.log" -type f -size +5M
-
高级用法
- 执行命令:
find <目录> -name <文件名模式> -exec <命令> {} \;
例如,查找当前目录及其子目录中所有扩展名为 .py
的文件,并使用 nano
编辑器打开它们: find . -name "*.py" -exec nano {} \;
- 删除文件:
find <目录> -name <文件名模式> -delete
例如,删除当前目录及其子目录中所有扩展名为 .tmp
的文件 find . -name "*.tmp" -delete
- 限制搜索深度:
find <目录> -maxdepth <深度> -name <文件名模式>
例如,仅在当前目录中查找扩展名为 .sh
的文件,不递归到子目录: find . -maxdepth 1 -name "*.sh"
区别总结
- 搜索对象:
grep
:搜索文本内容,关注的是文件中的文本行是否匹配特定模式.find
:搜索文件对象,关注的是文件本身是否符合特定的属性条件.
- 应用场景:
grep
:适用于文本内容的搜索和过滤,如查找日志文件中的错误信息、代码文件中的函数定义等.find
:适用于文件的定位和管理,如查找特定类型的文件、查找最近修改过的文件、批量删除临时文件等.
- 输出结果:
grep
:输出匹配到的文本行,通常用于查看文本内容.find
:输出符合条件的文件路径,通常用于对文件进行进一步的操作.