一、常用元字符简介
字符 | 功能 |
---|---|
\ | 转义字符 |
. | 匹配除换行符(\n、\r)之外的任意一个字符 |
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
? | 匹配前面的子表达式零次或一次 |
$ | 匹配结尾 |
[] | 匹配方括号内的字符集合的任意一个 |
[^xyz] | 匹配除xyz之外的任意字符 |
x|y | 匹配x或者y |
{n} | 匹配前一个字符n次(严格的n次) |
{n,} | 匹配前一个字符至少n次 |
{n,m} | 匹配前一个字符至少n次,最多m次 |
二、grep 命令介绍
- 主要参数介绍
-E, 相当于 egrep 支持扩展的正则表达式
基本正则表达式(BRE)中,只承认“^”、“$”、“.”、“[”、“]”、“*”这些是元字符,所有其他的字符都被识别为普通字符。
而在扩展正则表达式(ERE)中,则在BRE的基础上增加了“(”、“)”、“{”、“}”、“?”和“+”、“|”等元字符。
-F, 相当于 fgrep 不支持正则表达式
-B 除了显示符合范本样式的那一列之外,并显示该行之前的内容。后面可跟一数字,表示显示前几行
-A 除了显示符合范本样式的那一列之外,并显示该行之后的内容。后面可跟一数字,表示显示后几行
-C 除了显示符合范本样式的那一列之外,并显示该行前后的内容。后面可跟一数字,表示显示前后各几行
-b 在显示符合样式的那一行之前,标示出该行第一个字符的偏移量。
-a 不要忽略二进制的数据。
-c 计算符合样式的行数。
-v 显示不包含匹配文本的所有行(小写v 大写的V是显示版本信息)
-n 显示行号
-w 显示严格全字符符合的行
-o 只显示符合PATTERN的部分
-L 列出文件内容不符合指定的样式的文件名称(-l 与之相反)
-r 递归的方式匹配目录下的所有文件
-H 在显示符合样式的那一行之前,表示该行所属的文件名称。(-h 与之相反)
-i 忽略字符大小写
- 例子
[hadoop@bigdata data]$ grep pa jike.txt
#Root password
passsss
passsssinon
pa
[hadoop@bigdata data]$ grep -w pa jike.txt
pa
[hadoop@bigdata data]$ grep -o pa jike.txt
pa
pa
pa
pa
# 匹配以#开头的行
[hadoop@bigdata data]$ grep ^# jike.txt
#Root password
[hadoop@bigdata data]$ grep passsssi* -C 1 -n jike.txt
1-#Root password
2:passsss
3:passsssinon
4-pa
[hadoop@bigdata data]$ grep passsssi* -n jike.txt
2:passsss
3:passsssinon
[hadoop@bigdata ~]$ grep p -r -H -n -b data/
data/wc.data:3:28:beijing,is,the,capital,of,china
data/hello.txt:4:28:4,jepson
data/spooling_data/wc.data.COMPLETED:3:28:beijing,is,the,capital,of,china
data/spooling_data/hello.txt.COMPLETED:4:28:4,jepson
data/position/taildir_position.json:1:0:[{"inode":182330329,"pos":114,"file":"/home/hadoop/data/taildir/test1/example.log"},{"inode":184597617,"pos":0,"file":"/home/hadoop/data/taildir/test2/b.log"},{"inode":184597614,"pos":20,"file":"/home/hadoop/data/taildir/test2/a.log"}]
data/jike.txt:1:0:#Root password
data/jike.txt:2:15:passsss
data/jike.txt:3:23:passsssinon
data/jike.txt:4:35:pa
三、find命令
在指定目录中查找指定文件
- 语法
find path 查找条件
- 常用参数
-name name,文件名符合name的文件(-iname 忽略大小写)
-regex PATTERN 使用正则表达式来匹配
-type 指定查找的文件类型
f 文件
d 目录
l 符号链接
-empty 检索空文件
! 反义(不符合条件的)
-user 检查文件所属用户
-group 检查文件所属用户组
# 天
-mtime 内容修改
-atime 访问过
-ctime 修改过
# 分钟
-mmin
-amin
-cmin
后跟一个负数 表示 几天/分钟以内 eg:-atime -2 两天以内访问过 -atime 2 两天前访问过
后跟一个正数,表示几天/分钟以前
-size 根据文件大小进行搜索
c 字节
k kB
M MB
G GB
eg:find . -size +13M 大于13MB 负号表示小于
-perm 通过权限进行搜索 -perm 664 / -perm u=rw,g=rw,o=r
-exec 对搜索结果执行命令,无提示 find .-type d -exec ls -l {} \;
-ok 对搜索结果执行命令,有提示(交互式,需要确认)