1. 简介
-
grep 命令: 在linux命令行中,经常需要对当前获取的一堆数据进行过滤、提取和分析,其中grep命令是非常重要的命令之一,比如,在开机log中经常使用到这个命令过滤信息:dmesg | grep kernel
-
find 命令: Linux find 命令用于在指定目录下查找文件和目录
2. find 命令
-
find命令语法:
find pathname -options [-print -exec -ok ...] find [路径] [选项] [操作]
-
示例 1:使用 -name 参数查找指定文件
find 能够找到的是只有和搜索内容 file.txt一致的文件,而 /etx/file1.txt 文件虽然含有搜索关键字,但是不会被找到。这种特性我们总结为:find 命令是完全匹配的,必须和搜索关键字一模一样才会列出。
查找 /etc 目录下是否有file.txt find /etc -name file.txt
-
示例 2:Linux 中的文件名是区分大小写的,也就是说,搜索小写文件,是找不到大写文件的。如果想要大小通吃,就要使用 -iname 来搜索文件。
touch CANGLS touch cangls #建立大写和小写文件 find.-iname cangls ./CANGLS ./cangls #使用-iname,大小写文件通吃
-
示例 3:将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
find . -name "*.c"
-
示例 4:将当前目录及其子目录下所有文件名为overlay…的文件列出来
-
find . -name "overlay*"
3. grep 命令
-
grep命令语法:
grep [options] [pattern] file grep [选项参数] [字符串] [文件名]
-
示例 1:在开机log中搜索与wifi相关的log打印:
dmesg | grep wlan
-
示例 2:在文件 file.txt 中查找字符串 “hello”,并打印匹配的行:
grep hello file.txt
-
示例 3:以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
grep -r update /etc/acpi