find和grep的使用

1、find
语法格式: find  [path]  [options]  [tests]  [actions]

[path]是路径,可以是绝对路径、相对路径,或者多个路径。
[options]下面列出一些主要选项:



[tests]

  -size n[cwbkMG]
        File uses n units of space. The following suffixes can be used:
        `b' for 512-byte blocks (this is the default if no suffix is
            used)
        `c' for bytes
        `w' for two-byte words
        `k' for Kilobytes (units of 1024 bytes)
        `M' for Megabytes (units of 1048576 bytes)
        `G' for Gigabytes (units of 1073741824 bytes)

还可以使用操作符来组合这些测试项。

可以使用括号来强制测试和操作符的优先级,但是要注意使用使用反斜杠"\"来引用括号,以确保括号没有被shell扩展。如果文件名使用通配符,要用双引号引起来,以确保直接传递给find命令。
假设/home/qyh/temp下有如下文件:

如果要在当前路径下找到比phone新的文件夹,或者以N开头的文件,那么可以使用如下命令:
find  ./  \(  \( -newer  ./phone  -a  -type  d \) -o -name "N*"  \)  -print
如果正确执行的话,会输出
./hah
./NetSetting
验证一下:
经过测试和验证,发现 在括号的左右两侧必须留一个空格,才能正常识别指令。
[actions]

{}是-exec和-ok的一个特殊参数,代表当前完整路径。
-ls会打印出find找到的文件的详细参数。

find命令还有很多相关参数,可用命令 man find查看。

2、grep
    grep是General Regular Expression Parser的简称,即通用正则表达式解析器。一般是使用find来查找文件,用grep来查找字符串。
可以将grep作为传递给-exec的一条命令。
语法格式: grep  [options]  PATTERN [FILES]
如果没有提供文件名,grep命令将搜索标准输入。
[options]

    -n                     顺便输出行号
    -R,-r                  到下级目录,递归的查找
假设有这样一个文件:

那么,用grep命令来做几个测试:

正则表达式
(1)、特殊字符
如果要将特殊字符用做普通字符的话,必须加反斜杠"\"。

(2)、匹配模式


(3)、如果使用了扩展匹配-E选项,那么下面的字符要加上反斜杠。

例子:
找到以";"结尾的行

找到以ha开头而且是4个字母的单词的行

找到字符串尾部有6个小写字母的字符串的行(如下所示,\{6\}周围不能有空格)

grep命令还有很多相关参数,可用命令 man grep查看。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值