grep更详细的指令博客:http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html
f ind 博客内容:http://man.linuxde.net/find
- grep指令
grep 工具,以前介绍过。
grep -[acinv] '搜索内容串' filename
-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-e 指定多个匹配模式
-i 忽略大小写
-n 顺便输出行号
-r --recursive #此参数的效果和指定“-d recurse”参数相同。
-v 反向选择,即找 没有搜索字符串的行
。。。。。。
其中搜索串可以是正则表达式!
使用grep匹配时最好用双引号引起来,防止被系统误认为参数或者特殊命令,也可以匹配多个单词。
实例1:从文件中查找关键词
命令:
grep 'linux' test.txt
实例2:从多个文件中查找关键词
命令:
grep 'linux' test.txt test2.txt
实例3:查找指定进程
命令:
ps -aux |grep tomcat
实例4:从文件中读取关键词进行搜索 且显示行号
命令:
cat test.txt | grep -nf test2.txt
实例5: 输出含有字符t或字符f的所有行
命令:
grep -e t -e f file1
实例6: 查找所有文件中包含某个字符
命令:
grep -r "查找文本内容" *
grep -rc 'test' *.txt
关于匹配的实例:
grep -c "48" test.txt 统计所有以“48”字符开头的行有多少
grep -i "May" test.txt 不区分大小写查找“May”所有的行)
grep -n "48" test.txt 显示行号;显示匹配字符“48”的行及行号,相同于 nl test.txt |grep 48)
grep -v "48" test.txt 显示输出没有字符“48”所有的行)
grep "471" test.txt 显示输出字符“471”所在的行)
grep "48;" test.txt 显示输出以字符“48”开头,并在字符“48”后是一个tab键所在的行
grep "48[34]" test.txt 显示输出以字符“48”开头,第三个字符是“3”或是“4”的所有的行)
grep "^[^48]" test.txt 显示输出行首不是字符“48”的行)
grep "[Mm]ay" test.txt 设置大小写查找:显示输出第一个字符以“M”或“m”开头,以字符“ay”结束的行)
grep "K…D" test.txt 显示输出第一个字符是“K”,第二、三、四是任意字符,第五个字符是“D”所在的行)
grep "[A-Z][9]D" test.txt 显示输出第一个字符的范围是“A-D”,第二个字符是“9”,第三个字符的是“D”的所有的行
grep "[35]..1998" test.txt 显示第一个字符是3或5,第二三个字符是任意,以1998结尾的所有行
grep "4\{2,\}" test.txt 模式出现几率查找:显示输出字符“4”至少重复出现两次的所有行
grep "9\{3,\}" test.txt 模式出现几率查找:显示输出字符“9”至少重复出现三次的所有行
grep "9\{2,3\}" test.txt 模式出现几率查找:显示输出字符“9”重复出现的次数在一定范围内,重复出现2次或3次所有行
grep -n "^$" test.txt 显示输出空行的行号
ls -l |grep "^d" 如果要查询目录列表中的目录 同:ls -d *
ls -l |grep "^d[d]" 在一个目录中查询不包含目录的所有文件
ls -l |grpe "^d…..x..x" 查询其他用户和用户组成员有可执行权限的目录集合
【命令库】-Linux grep命令的or,and,not操作
原创 2017年04月19日 11:55:49 标签:命令 401
1 OR 语义
egrep 'pattern1|pattern2' filename
2 AND 语义
grep -E 'pattern1.*pattern2' filename
3 NOT 语义
grep -v 'pattern1' filename
管道查找:
前面指令查找出了结果给后面继续处理
grep -rn "/id5-weather/v1" localhost_access_log.2017-11-11.txt | grep -c 'HTTP/1.1" 405'
grep -rn "/id4-weather" localhost_access_log.2017-12-15.txt | awk '{print $9}' | sort|uniq -c|sort
Find查找指令
- f ind 指令
实例
根据文件或者正则表达式进行匹配
列出当前目录及子目录下所有文件和文件夹
find .
在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
同上,但忽略大小写
find /home -iname "*.txt"
当前目录及子目录下查找所有以.txt和.pdf结尾的文件
find . ( -name “.txt" -o -name ".pdf” )
或
find . -name "*.txt" -o -name "*.pdf"
匹配文件路径或者文件
find /usr/ -path "*local*"
基于正则表达式匹配文件路径
find . -regex ".*\(\.txt\|\.pdf\)$"
同上,但忽略大小写
find . -iregex “.*(.txt|.pdf)$”
否定参数
找出/home下不是以.txt结尾的文件
find /home ! -name "*.txt"
根据文件类型进行搜索
find . -type 类型参数
类型参数列表:
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
3.根据文件的特征进行查询
find /home/lijiajia/ -amin -10 #查找在系统中最后10分钟访问的文件
find /home/lijiajia/ -atime -2 #查找在系统中最后48小时访问的文件
find /home/lijiajia/ -empty #查找在系统中为空的文件或者文件夹
find /home/lijiajia/ -group baron # 查找在系统中属于group baron 的文件
find /home/lijiajia/ -mmin -5 # 查找在系统中最后5 分钟里修改过的文件
find /home/lijiajia/ -mtime -1 #查找在系统中最后24 小时里修改过的文件
find /home/lijiajia/ -nouser #查找在系统中属于作废用户的文件(不明白是什么意思)
find /home/lijiajia/ -amin 10 #查找在系统中最后10分钟访问的文件
find /home/ftp/pub -user baron #查找在系统中属于baron这个用户的文件