网站建设的基本特点,一个虚拟主机如何做多个网站,dw制作简单网页,推广比较好的网站有哪些find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find
find 命令在指定的目录下查找对应的文件。
find [path] [expression]● path 是要查找的目录路径#xff0c;可以是一个目录或文件名… find和grep命令的简单使用 一、find例子--不同条件查找 二、grep正则表达式的简单说明例子--简单文本查找例子--结合管道进行查找 一、find
find 命令在指定的目录下查找对应的文件。
find [path] [expression]● path 是要查找的目录路径可以是一个目录或文件名也可以是多个路径多个路径之间用空格分隔如果未指定路径则默认为当前目录。 ● expression 是可选参数用于指定查找的条件可以是文件名、文件类型、文件大小等等。
常用可选参数 -name pattern按文件名查找支持使用通配符 * 和 ?。-type type按文件类型查找可以是 f普通文件、d目录、l符号链接等。-size [±]size[cwbkMG]按文件大小查找支持使用 或 - 表示大于或小于指定大小单位可以是 c字节、w字数、b块数、kKB、MMB或 GGB。-mtime days按修改时间查找支持使用 或 - 表示在指定天数前或后days 是一个整数表示天数。-user username按文件所有者查找。-group groupname按文件所属组查找。-amin n查找在 n 分钟内被访问过的文件。-atime n查找在 n*24 小时内被访问过的文件。-cmin n查找在 n 分钟内状态发生变化的文件例如权限。-ctime n查找在 n*24 小时内状态发生变化的文件例如权限。-mmin n查找在 n 分钟内被修改过的文件。-mtime n查找在 n*24 小时内被修改过的文件。 例子–不同条件查找
查找 /home 目录下大于 1MB的文件
find /home -size 1M查找 /home 目录下小于1MB的文件
find /home -size -1M查找 /etc 目录下 在7天前修改过的文件不包含文件目录
find /etc -mtime 7 -type f 查找 / 下及其字目录的所有文件后缀为 .c的文件
find / -name *.c查找 /home及其子目录下文件类型为目录的文件
find /home -type d 查找robin用户所拥有的文件中以txt结尾的文件
find -user robin -name *.txt二、grep
grep命令在文本文件中查找指定模式的词或短语然后在标准输出设备上显示包括给定字符串模式的所有行。 grep -E 等同于 egrep , 使用扩展的正则表达式模式进行搜索 grep -F 等同于 fgrep 字符串快速检索不支持正则表达式 grep [选项]... PATTERN [FILE]...● pattern - 表示要查找的字符串或正则表达式。 ● files - 表示要查找的文件名可以同时查找多个文件如果省略 files 参数则默认从标准输入中读取数据。
常用选项 ● -i忽略大小写进行匹配。 ● -v反向查找只打印不匹配的行。 ● -n显示匹配行的行号。 ● -r递归查找子目录中的文件。 ● -l只打印匹配的文件名。 ● -c只打印匹配的行数。 ● -x : 只显示整个行都严格匹配的行 ● -E 将查找模式解释成扩展的正则表达式 ● -F 将查找模式解释成单纯的字符串
正则表达式的简单说明
正则表达式简称 “regex”是一种用于匹配和操作文本的强大工具它是由一系列字符和特殊字符组成的模式用于描述要匹配的文本模式。
组合说明[abc]匹配中括号中的所有字符[a-z]匹配中括号中的字符范围内的所有字符[^abc]匹配除中括号中的字符外的所有字符*匹配前面的子表达式零次或多次匹配前面的子表达式的一次或多次匹配前面的子表达式零次或一次.代表任意一个字符$匹配输入字符串的结束位置以…结尾^匹配输入字符串的起始位置以…开头{n}匹配确定的n次{n,}至少匹配n次{n,m}最少匹配n次最多匹配m次
例子–简单文本查找
首先在当前目录下创建一个文件用于grep命令的练习
vi a.txt
Albania
Algeria
Canada
0
1
3
11grep 对于 匹配的字符串区分大小写 “.” 只匹配一次任意字符 这里第二次匹配因为没有添加严格限制选项它依然匹配到了内容加上严格限制以后得出了正确的结果。 “” 与 “” 和 “”的区别 “” 代表匹配前面的子表达式一次或多次 “ ”相当于占位符匹配前面的子表达式零次或一次 “”代表匹配前面的子表达式任意次。 这里的话有一个问题就是多个正则表达式的特殊字符需要使用 -E 开启正则表达式匹配模式否则的话会出现找不到的问题。 例子–结合管道进行查找
查找根目录下的所有s开头的文件及目录
ls / | gerp -E ^s查找/home目录下不是以数字结尾的文件及目录
ls /home | grep -v -E [0-9]$查找/etc/passwd 中的以 user开头的账号信息
cat /etc/passwd | grep -E ^user* # 看起来貌似直接使用grep不用管道也行
# 等同于 grep -E ^user* /etc/passwd