linux下的find、grep、cut使用
1、find
用于查找文件或者目录
find path options [commad]
【options】:
-size 按文件大小查找
-empty 查找空白文件或目录
-name 按文件名称查找
-iname 按文件名称查找,不区分大小写
-user 按文件属性主查找
-group 按文件属组查找
-mtime 按文件修改时间查找
-type 按文件类型查找(f,d,b,c,l),f表示文件,d表示目录
-a 并且
-o 或者
find 常与管道符,-exec ,xargs进行联合使用
示例:
找到/root目录下的txt文件,并打印出来
find /root/ -name ‘*.txt’ -type f | xargs ls - l
找到/root目录下的大于1M的文件
find /root/ -size +1M -a -type -f
find /root/ -size +1M -a -type f
找到/目录下的空文件或目录
find / -empty
找到/目录下的属组为test的文件或目录
find / -group test
查找系统中三天内被修改的文档
find / -mtime -3
查找系统中三天前被修改的文档
find / -mtime +3
查找系统中两天前的当天被修改的文档
find / -mtime 2
2、grep
用于查找关键词并打印匹配的行
grep [options] Pattern [file] [commad]
【options】:
-i 忽略大小写
-n 显示行号
-v 反转查找
-w 匹配单词
--color 显示颜色
-A 打印匹配结果之后的行
-B 打印匹配结果之前的行
-C 分别打印匹配结果之间的行
示例:
grep -w boot test.text #匹配含有boot 的行
grep -n ^Y test.text #查找以Y开头的行
grep -w -v boot test.txet #匹配非boot的行
3、cut
cut主要用于按列切分文件,针对CSV文件或者空格分隔的文件(标准日志文件)
cut options file_list [file|dir] [command]
【file_list 】:
需要显示的列,列号之间使用逗号分隔,对于非规律的文件,没有使用特定的分隔符的文件:
N - 从第N个字节,字段或字符开始到结尾;N-M 从第N个字节,到第M个字节;- M 从开始到从第M个字节,字段或字符
【options】:
-f 指定要提取的字段,-b 代表字节,-c 代表字符
cut -f 2,3 test.txt 得到test.text文件的第2,3列内容
cut -b 2-5 test.txt 得到每列的2-5个字节间的内容
cut -c -4 test.txt 得到每列的前4个字符的内容
-s 可以禁止原样打印,cut 可以从stdin读取输入,制表符默认为分隔符,对于没有使用分隔符的行,该命令会将文件原样打出
cut -f 1 -s test.txt
--complement 显示没有被-f指定的字段
cut -f 1 --complement test.txt 除了第一列的内容
-d 指定分隔符
head -n 3 /tem/passwd|cut -f 2,3 -d “,”
--output-delimiter 显示各个区间内容,可以使用--output-delimiter 设置分隔符
cut -c1-3,4-7 --output-delimiter “%” test.txt 得到每列的第1-3和4-7之间的字符,他们之间使用%分隔