Linux命令之grep及f ind

7 篇文章 0 订阅

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这个用户的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值