linux命令系列07:find/grep文本处理

0x00 Linux基础:

    学习基本的linux命令操作,对于我们熟悉linux或者unix系统还是很有帮助的。

0x01 find 文件查找

1 按类型搜索

查找txt和pdf文件:#find . −name"∗.txt"−o−name"∗.pdf" -print
正则方式查找.txt和pdf:#find . -regex  ".*\.txt|\.pdf$"
否定参数 ,查找所有非txt文本:#find . ! -name "*.txt" -print
指定搜索深度,打印出当前目录的文件(深度为1):#find . -maxdepth 1 -type f
按类型搜索#find . -type d -print  //只列出所有目录
可以用以下命令组合来实现查找本地目录下的所有二进制文件:
ls -lrt | awk '{print $9}'|xargs file|grep  ELF| awk '{print $1}'|tr -d ':'

2 按时间搜索

最近第7天被访问过的所有文件:#find . -atime 7 -type f -print
最近7天内被访问过的所有文件:find . -atime -7 -type f -print
查询7天前被访问过的所有文件:find . -atime +7 type f -print

 

3 按大小搜索

w字 k M G 寻找大于2k的文件:find . -type f -size +2k
按权限查找:#find . -type f -perm 644 -print //找具有可执行权限的所有文件
按用户查找:#find . -type f -user weber -print// 找用户weber所拥有的文件

 

4 找到并删除

删除当前目录下所有的swp文件:find . -type f -name "*.swp" -delete 或者#find . type f -name "*.swp" | xargs rm

 

5 找到并执行

将当前目录下的所有权变更为weber:#find . -type f -user root -exec chown weber {} \;
将找到的文件全都copy到另一个目录:find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \;

0x02 grep 文本搜索

grep match_patten file // 默认访问匹配行
-o 只输出匹配的文本行。或者 -v 只输出没有匹配的文本行
-c 统计文件中包含文本的次数
grep -c “text” filename
-n 打印匹配的行号
-i 搜索时忽略大小写
-l 只打印文件名
在多级目录中对文本递归搜索(程序员搜代码的最爱):grep "class" . -R -n
匹配多个模式:grep -e "class" -e "vitural" file
grep输出以0作为结尾符的文件名(-z):grep "test" file* -lZ| xargs -0 rm
综合应用:将日志中的所有带where条件的sql查找查找出来:
#cat LOG.* | tr a-z A-Z | grep "FROM " | grep "WHERE" > b

查找record.log中包含AAA,但不包含BBB的记录的总数:
cat -v record.log | grep AAA | grep -v BBB | wc -l

0x03 egrep查询文件内容

egrep '03.1\/CO\/AE' TSF_STAT_111130.log.012
egrep 'A_LMCA777:C' TSF_STAT_111130.log.035 > co.out2

0x04 后续补充

find      #查找速度慢,find / -name xx -ls
find /etc -name "*network*" -exec file{} \;
hich #可执行文件,只在特定目录搜索可执行文件
whereis      #可执行文件及其可执行文件的man 配置文件
slocate    #locate查找自己的数据库,可以先,#updatedb
locate -r '.*newfile.*'
grep `\mm\' /etc/passwd
tail -f /var/log/messages
grep -v '^#' /etc/squid.conf | grep '^$' |wc -l

 

欢迎大家分享更好的思路,热切期待^^_^^ !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值