find和grep的使用
1、find命令的使用
在Linux中可以使用find命令在指定的目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名,当使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并将查找到的文件进行全部显示。
(1)命令语法
find命令的语法如下:
find path -option [-print] [-exec -ok command] {} \;
find根据下面规则判断path和exprssion,在命令列上的第一个-(),之前的部分为path,之后的是expression,如果path为空字符串,则使用当前路径,如果expression是空字符串,则使用-print为预设的expression。
(2)常用选项说明
-mount,-xdev:只检查和指定目录在同一文件系统下的文件,避免列出其它文件系统的文件
-amin n:在过去n分钟内被读取过的文件
-anewer file:比文件file更晚被读取过的文件
-atime n:在过去n天内被读取过的文件
-cmin n:在过去n分钟内被修改过的文件
-empty:空的文件
-gid n or -group name:gid是n或group是name的文件
-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写
-name name,-iname name:文件名称符合name的文件,iname会忽略大小写
-size n:文件大小是n单位的文件
-type c:文件类型是c的文件
-pid n:process id是n的文件
(3)实例
将目前目录及其子目录下所有以.c结尾的文件列出来:
$ find . -name “*.c”
将目前目录及其子目录中的所有一般文件列出:
$ find . -type f
将当前目录及其子目录下所有最近20天内更新过的文件列出:
$ find . -ctime -
查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
$ find /var/log -type f -mtime + ok rm {} \;
查找当前目录中文件属主具有读写权限,并且文件所属组合其他用户具有读权限的文件:
$ find . -type f -perm -exec ls -l {} \;
查找系统中所有文件长度为0的为普通文件,并列出它们的完整路径:
$ find / -type f –size –exec ls –l {} \;
2、grep命令的使用
Linux中grep命令用于查找文件中符合条件的字符串,grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合指定的范本样式,预设grep指令将会把含有范本样式的哪一列显示出来,若不指定任何文件名称,或是所给与的文件名”-”,则grep将会从标准输入设备读取数据。
(1)命令语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
(2)常用选项说明
-a:不要忽略二进制数据。
-A<显示列数>:除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b:在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c:计算符合范本样式的列数。
-C<显示列数>或-<显示列数>:除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式>:指定字符串作为查找文件内容的范本样式。
-E :将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件>:指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F:将范本样式视为固定字符串的列表。
-G:将范本样式视为普通的表示法来使用。
-h:在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H:在显示符合范本样式的那一列之前,标示该列的文件名称。
-i:忽略字符大小写的差别。
-l:列出文件内容符合指定的范本样式的文件名称。
-L:列出文件内容不符合指定的范本样式的文件名称。
-n:在显示符合范本样式的那一列之前,标示出该列的编号。
-q:不显示任何信息。
-R/-r:此参数的效果和指定“-d recurse”参数相同。
-s:不显示错误信息。
-v:反转查找。
-w:只显示全字符合的列。
-x:只显示全列符合的列。
-y:此参数效果跟“-i”相同。
-o:只输出文件中匹配到的部分。
(3)实例
在文件中搜索一个单词,命令返回一个包含”match_pattern”的文本行:
$ grep match_pattern file_name
or
$ grep “match_pattern” file_name
在多个文件中查找:
$ grep “match_pattern” file1 file2 file3 …
输出除之外的所有行:
$ grep -v “match_pattern” file_name
标记匹配颜色:
$ grep “match_pattern” file_name –color=auto
使用正则表达式:
$ grep -E “[-]+”
只输出文件中匹配到的部分:
$ echo this is a test line. | grep -o -E “[a-z]+\.”
统计文本或者文本中包含匹配字符串的行数:
$ grep -c “text” file_name
输出包含匹配字符串的行数:
$ grep “text” -n file_name
搜索多个文件并查找匹配文件在哪些文件中:
$ grep –l “text” file1 file2 file3 …
在多级目录中对文本进行递归搜索:
$ grep “text” . -r -n
参考:
https://man.linuxde.net/find
https://man.linuxde.net/grep
https://www.runoob.com/linux/linux-comm-find.html
https://www.runoob.com/linux/linux-comm-grep.html
find和grep的使用的更多相关文章
- grep 查找bash脚本中的注释代码
出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...
- linux grep命令
linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...
- linux中grep的应用
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- Linux命令-文件文本操作grep
文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...
- 4-4 grep及正则表达式
1. grep:Globally search a Regular Expression and Print:根据模式搜索文本,并将符合模式的文本行显示出来 pattern:文本字符和正则表达式的元字 ...
- grep 命令过滤配置文件中的注释和空行
grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...
- sed awk grep三剑客常用
sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...
- awk命令和grep命令的使用
1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...
- grep 命令
简单介绍:grep命令是用于分析一行信息,若当中有我们所需要的信息,就将该行取出来. 语法结构:grep [-acinv] [--color=auto] '查找关键字' #{filename} -a: ...
- 使用git grep进行git搜索
1.git grep foo 会自动map所有包含foo的文件 2.git grep -n foo 显示行号 3.git grep --name-only foo 只显示文件名 4.git grep ...
随机推荐
- spring:过滤器和拦截器
过滤器:网络通信模型的会话层控制: 拦截器:事务处理的aop注入(生命周期监控). 对于Servlet Filter,官方文档中说的很好, 并且给出了常见的应用场景. A filter is an o ...
- maven 查看依赖树结构命令mvn dependency:tree
使用maven 管理项目的依赖,可以使用如下命令查看依赖树结构: mvn dependency:tree 如下图是使用idea的终端执行命令的局部图: 也可以使用如下命令将输出定向到某个文件,这样就可 ...
- frp开机启动
暂时只介绍linux版本的做法,作为备忘. 添加systemd配置文件: vim /usr/lib/systemd/system/frp.service 文件内容如下: [Unit] Descript ...
- Ribbon自带负载均衡策略
IRule这是所有负载均衡策略的父接口,里边的核心方法就是choose方法,用来选择一个服务实例. AbstractLoadBalancerRuleAbstractLoadBalancerRule是一 ...
- 小程序&app 注册登录、绑定
前段时间开发中的一款产品,有小程序和app:小程序直接微信登录,app使用手机号+验证码注册,手机号+验证码/密码登录. 用户使用其中一套账号密码即可正常使用,不强制要求完善另一套账号.为避免同一用户 ...
- spl_autoload_register 和 __autoload()魔术方法
在 PHP 5.3 之前,__autoload 函数抛出的异常不能被 catch 语句块捕获并会导致一个致命错误(Fatal Error). 尽管 __autoload() 函数也能自动加载类和接口 ...
- A*G`C002
AGC002 A Range Product 不会,弃疗了/kk https://agc002.contest.atcoder.jp/submissions/7908938 B Box and Bal ...
- 「HNOI2015」亚瑟王
传送门 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟 ...
- RNN 权重共享
之前在几篇博客中说到了权重共享,但都觉得不够全面,这里做个专题,以后有新的理解都在此更新. 1. 减少运算只是锦上添花之前说到权重共享可以减少运算,是的,但这样说好像是可有可无,只是运算量大小的问题, ...
- org.springframework.web.method.ControllerAdviceBean#isApplicableToBeanType 作用
org.springframework.web.method.ControllerAdviceBean#isApplicableToBeanType(@Nullable Class<?> ...