grep命令

  grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

find命令

而linux下的find
功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。
语法:find 起始目录 寻找条件 操作 
说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

举个栗子grep

1、查找指定进程

命令:ps -ef|grep java

2、查找指定进程个数

命令:ps -ef|grep -c java

或ps -ef|grep java -c    # 显示的是进程数

一些不知道常用不常用,反正目前没用到,先mark~

1、$ ls -l | grep '^a'         通过管道过滤ls -l输出的内容,只显示以a开头的行。
2、$ grep 'test' d*    显示所有以d开头的文件中包含test的行。
3、$ grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行。
4、$ grep '[a-z]\{5\}' aa 显示所有包含每个字符串有5个连续小写字符的字符串的行。
5、$ grep 'w\(es\)t.*\1' aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用"\"号进行转义,直接写成'w(es)t.*\1'就可以了。
6、cat test.txt | grep -f test2.txt
7、cat test.txt |grep -E "ed|at"    显示包含ed或者at字符的内容行

8、grep '[a-z]\{7\}' *.txt             显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行

grep中转义字符需要注意

如:
grep "$a" file #引用变量a,查找变量a的值
grep '$a' file #查找“$a”字符串
grep '\\' file #查找‘\’字符
grep "\\\\" file # 由于是双引号,shell先把\\转义,就成了\,grep接收到的只有\\\,\是特殊字符 ,后面应该跟需要转义的字符,也就是\\,所以如果直接使用"//"那么就出现了错误。

其他需要到的详细栗子在这里:https://www.cnblogs.com/kongzhongqijing/articles/4462793.html

 举个栗子之find

基本格式:find  path expression

   

 1.按照文件名查找

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find / -iname httpd.conf  #-iname:根据文件名查找,不区分大小写
(3)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
(4)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(5)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
(6)find . -name 'srm?'   #”?”:可表示任意单个字符
(7)find . -name 'srm[123]'   #”[]”表示通配括号里面的任意一个字符,注意[]里面的内容会被解析成单个字符。
 2.按照文件特征查找     

(1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
# +10 表示10分钟前 存取访问过的文件
(2)find / -atime -2   # 查找在系统中最后48小时访问的文件
# +2 2天前 存取访问过得文件 (3)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
# +5 5分钟前存取过的文件
(4)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
# +1 1天前存取过的文件 mtime 已更改的时间 为参数,ctime 已更改的属性为参数 (5)find / -cmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
# +5 5分钟前存取过的文件
(6)find / -ctime -1   #查找在系统中最后24小时里修改过的文件
# +1 1天前修改过的文件 (7)find / -empty   # 查找在系统中为空的文件或者文件夹
(8)find / -group cat   # 查找在系统中属于 group为cat的文件   
(9)find / -user fred   #查找在系统中属于fred这个用户的文件
(10)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(11)find / -size -1000k   #查找出小于1000KB的文件 (12)find .-type f #-type根据文件类型查找文件
# f 表示普通文件,d表示目录文件,l 链接文件,

参考博文:https://www.cnblogs.com/lpp900830/p/6053592.html

     https://blog.csdn.net/m0_38121874/article/details/77019127

linux命令之grep,find的更多相关文章

  1. 【linux命令】grep

    1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...

  2. linux命令之grep用法介绍

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  3. 每天一个linux命令(51)--grep命令

    linux系统中grep 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep 全称是 global regular expression print,表示全局正则 ...

  4. 【Linux命令】grep命令

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...

  5. Linux命令——find/grep

    这两个命令写起来会很多,这里只简单的写一些东西,加深自己的印象. 一.find find命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作. 1)命令格式 find [参数] ...

  6. 每天学点Linux命令之grep 和 wc命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表 ...

  7. 每日linux命令学习-grep模式检索

    grep模式检索指令包括grep,egrep,和fgrep,.Linux系统使用正则表达式优化文本检索,所以在此,笔者首先学习了一下正则表达式. 1. 正则表达式 正则表达式使用被称为元字符(Meta ...

  8. linux命令系列 grep

    grep, egrep, fgrep - print lines matching a pattern SYNOPSIS grep [OPTIONS] PATTERN [FILE...] grep [ ...

  9. 每天学点Linux命令之grep 和 wc命令 ---(6/25)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  10. linux 命令——39 grep (转)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

随机推荐

  1. linux c编程:make编译一

    一个工程中的源文件不计其数,按照不同的功能分类在若干的目录里面,makefile定义了一系列的规则,来制定那些文件需要先编译,那些文件后编译,那些文件重新编译.makefile最大的好处就是自动化编译 ...

  2. JVM--内存区的划分

    转自:http://www.jianshu.com/p/7ebbe102c1ae Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域. java虚拟机运行时数据区 一. ...

  3. xutils3基本使用

    根目录下新建一个类继承application,调用xUtils3初始化方法 public class AtguiguApplication extends Application { @Overrid ...

  4. vuex原理笔记

    本文总结自: https://tech.meituan.com/vuex-code-analysis.html, 将要点提炼为笔记,以便不时之需,安不忘危. 核心可分为两部分: 1.vue.use(V ...

  5. Windows Server 2008 MS Office 操作 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))。

    Make sure that you have Office runtime installed on the server. If you are using Windows Server 2008 ...

  6. 本地Ubuntu16搭建Seafile

    本地搭建Seafile 1.下载 2.解压 3.创建目录 mySeafile 4.将解压包放入mySeafile中 5.创建installed 将压缩包放入installed 安装准备工作 pytho ...

  7. python之tkinter_1

    以下内容来自:https://blog.csdn.net/wangyiyan315/article/details/16361065 from tkinter import * # 导入tkinter ...

  8. gVim/Vim 一键编译、连接、运行 C/C++ 单文件

    用于Gvim 或 Vim 配置文件的一键编译与运行函数(注:需要机器上安装了GCC才行) 本代码只加入了对C/C++的编译与运行,如果要加入其语言的可以参考此代码加入即可 同时,本代码加入了对Wind ...

  9. springAOP原理以及概念

    需求:1.拦截所有业务方法2.判断用户是否有权限,有权限就让他执行业务方法,没有权限就不允许执行.(是否有权限是根据user是否为null作为判断依据) 思考: 我们该如何实现? 思路1: 我们在每个 ...

  10. codeforces 660D D. Number of Parallelograms(计算几何)

    题目链接: D. Number of Parallelograms time limit per test 4 seconds memory limit per test 256 megabytes ...