写这篇博客的原因是因为在牛客上做到的一道题难到了我,题目如下:
查询该目录及子目录下所有的以.conf为后缀的文件:
A:find ./ -name “conf”
B:find ./ -name &quto;*.[conf]&quto;
C:find ./ -type d | rgrep &quto;\.(conf)&quto;
D:find ./ -regextype posix-extended -regex &quto;.*\.(conf)&quto
答案:D
解析:因为我学习Linux时间还不长,对于find用的最多的就是查找,find -name filename,按照文件名查找,但是这种是精确查找,很明显对于本题是不符的,find -type 是按照文件类型查找,例如 $find /etc -type d [在/etc目录下查找所有的目录,而这里的文件类型包括:b 块设备文件 d 目录 c 字符设备文件 p 管道文件 l 符号链接文件 f 普通文件 ]后面的内容就是今天的重点了,关于匹配字符。
Grep:grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。rgrep我倒是没有看见过
find中使用正则表达式的语法是 find dir -regextype "type" -regex "pattern"
dir:查找文件的起始目录
type:如果不使用选项 -regextype "type", 则默认的正则表达式类型是emacs。使用该选项的话,type 类型包括 posix-awk, posix-basic, posix-egrep 和 posix-extended 四种。
Pattern:find中要想使用正规的正则表达式,需要用 -regex “pattern”(正则表达式)本题中 &quto;.*\.(conf)&quto [&quto 是html中的转义字符单引号]
写这篇博客的原因是因为在牛客上做到的一道题难到了我,题目如下:
查询该目录及子目录下所有的以.conf为后缀的文件:
A:find ./ -name “conf”
B:find ./ -name &quto;*.[conf]&quto;
C:find ./ -type d | rgrep &quto;\.(conf)&quto;
D:find ./ -regextype posix-extended -regex &quto;.*\.(conf)&quto
答案:D
解析:因为我学习Linux时间还不长,对于find用的最多的就是查找,find -name filename,按照文件名查找,但是这种是精确查找,很明显对于本题是不符的,find -type 是按照文件类型查找,例如 $find /etc -type d [在/etc目录下查找所有的目录,而这里的文件类型包括:b 块设备文件 d 目录 c 字符设备文件 p 管道文件 l 符号链接文件 f 普通文件 ]后面的内容就是今天的重点了,关于匹配字符。
Grep:grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。rgrep我倒是没有看见过
find中使用正则表达式的语法是 find dir -regextype "type" -regex "pattern"
dir:查找文件的起始目录
type:如果不使用选项 -regextype "type", 则默认的正则表达式类型是emacs。使用该选项的话,type 类型包括 posix-awk, posix-basic, posix-egrep 和 posix-extended 四种。
Pattern:find中要想使用正规的正则表达式,需要用 -regex “pattern”(正则表达式)本题中 &quto;.*\.(conf)&quto [&quto 是html中的转义字符单引号]