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的使用的更多相关文章

  1. grep 查找bash脚本中的注释代码

    出于安全性的考虑,不建议在bash脚本中注释掉不使用的代码.也就是说如果某段代码不使用了,那么应该删除掉,而不是简单地注释掉.假如你突然意识到这一点,而以前并没有遵从这个原则,现在需要找出脚本中的注释 ...

  2. linux grep命令

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

  3. linux中grep的应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  4. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  5. 4-4 grep及正则表达式

    1. grep:Globally search a Regular Expression and Print:根据模式搜索文本,并将符合模式的文本行显示出来 pattern:文本字符和正则表达式的元字 ...

  6. grep 命令过滤配置文件中的注释和空行

    grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...

  7. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  8. awk命令和grep命令的使用

    1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...

  9. grep 命令

    简单介绍:grep命令是用于分析一行信息,若当中有我们所需要的信息,就将该行取出来. 语法结构:grep [-acinv] [--color=auto] '查找关键字' #{filename} -a: ...

  10. 使用git grep进行git搜索

    1.git grep foo 会自动map所有包含foo的文件 2.git grep -n foo  显示行号 3.git grep --name-only foo 只显示文件名 4.git grep ...

随机推荐

  1. IDEA连接Oracle数据库

    连接Oracle的前提是导入了相关的jar或者依赖 下面是连接数据库的操作 如果出现了下面的画面,就说明连接成功

  2. Cyclical Quest CodeForces - 235C (后缀自动机)

    Cyclical Quest \[ Time Limit: 3000 ms\quad Memory Limit: 524288 kB \] 题意 给出一个字符串为 \(s\) 串,接下来 \(T\) ...

  3. Reincarnation HDU - 4622 (后缀自动机)

    Reincarnation \[ Time Limit: 3000 ms\quad Memory Limit: 65536 kB \] 题意 给出一个字符串 \(S\),然后给出 \(m\) 次查询, ...

  4. [教程]Ubuntu16.04安装TeX Live

    [教程]Ubuntu16.04安装TeX Live step 1 戳这里下载镜像 (只需要下载texlive.iso) 在终端输入 sudo apt-get install perl-tk step ...

  5. ABAP_DEMO篇33 SUM和COLLECT的用法

    ABAP程序内表中的数量和金额字段  经常会需要合计, SUM和COLLECT 语法都能实现对数量和金额字段的合计. 1. SUM语法 ABAP中SUM语句比不上EXCEL里的强大:SUM只能在loo ...

  6. MongoDB 命令速查表

    MongoDB  是一个面向文档可扩展的高性能开源数据库,典型的应用场景有网页数据,缓存,代替文档存储等. 命令的记忆和使用是一门基本功,这里准备了速查表,可以做案头手册. 库操作 切换或使用数据库 ...

  7. podium podlets 说明

    podlets 提供了一个页面片段服务,podlets 包含了一些元数据信息,通过json 暴露, 主要包含以下内容 一个 http endpoint 提供主要内容 一个 http endpoint ...

  8. Odds calculation required for the python strategy library

    Bet Class class strats.Bet(inp)[source] Here is an example of the expected string input on instantia ...

  9. A♂G&C012

    A♂G&C012 A AtCoder Group Contest 从大到小sort后输出\(a_2+a_4+a_6+\ldots a_{2n}\) 好♂啊,只会背结论/kk B Splatte ...

  10. LSTM的神经元个数

    小书匠深度学习 目录: 1.LSTM简单介绍 2.简单假设样例 3.神经元分析 3.1忘记门层 3.2细胞状态 3.3输出层 3.4总结 4.测试 1.LSTM简单介绍 LSTM在时间上展开 红框从左 ...