find、xargs、正则表达式、grep

find
find 查找路径
-name 根据名称查找
-type 根据类型查找
-size 根据大小查找(G、M、K、C)
-atime 根据访问时间n24小时
-ctime 创建时间
-mtime 修改时间
例如:修改日期是一天以内的文件
在这里插入图片描述
-amin n分钟
-cmin
-mmin
+n n分钟或n天以前
-n n分钟或n天以内
find是用来在特定的目录下搜索符合条件的文件
格式:find 路径 查找选项 查找关键词
例如:根据名称查找输入为:find ./ -name 1.txt 意为查找当前目录下所有名为1.txt的文件
也可以写成:
**find ./ -name '
.txt’,意为查找当前目录下所有后缀名为.txt的文件*

注意: * 代表任意个字符,?代表一个字符,【A-Z】代表A到Z范围内任选一个
若写成 find ./ -name “[A-Z]*” 表示查找当前目录下所有以大写字母开头的文件**
补充:
touch {1…10}.txt建立10个txt文件,用命令 find ./ -name “*txt” | xargs rm -rf
在这里插入图片描述

根据类型查找输入为:
find …/ -type d 查找目录文件
在这里插入图片描述
find ./ -type d -print -exec ls {} ; 查找目录并显示内容
在这里插入图片描述
find …/ -type l 查找一般软链接文件
在这里插入图片描述
find …/ -type f 查找一般文件
在这里插入图片描述
find …/ -empty 查找空文件或目录
在这里插入图片描述
find ./ -empty -type f -printf -delete 查找空文件并删除
在这里插入图片描述
删除后查看,确定已经删除。
在这里插入图片描述
按大小查找
+代表大于,-代表小于
find ./ -size -2M 查找在该目录下小于2M的文件
在这里插入图片描述
find ./ -size 2M 查找在该目录下等于2M的文件
在这里插入图片描述
没有找到,此时,建立一个2M的文件,并find ./ -size 2M 找到该文件。
在这里插入图片描述
测试查找结果,假设test.txt大小为2M
find ./ -size 2M | grep “test.txt”
在这里插入图片描述
有文件test.txt 且大小为2M.
同理大于2M也可用find ./ -size +2M该方法找出.

查找到2M的文件,并执行命令:
find …/ -size 2M -print -exec ll {} ;
在这里插入图片描述
find …/ -size 2M -print -exec ls -l {} ;
在这里插入图片描述
find …/ -size 2M -print -exec stat {} ;
在这里插入图片描述

那么,找区间应该怎样输入呢?

find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
按权限查找
find ./ -perm 0775 查看当前目录下权限为775的文件或目录
在这里插入图片描述
xargs
是给命令传递参数的一个过滤器,也是组合多个命令的一个工具
格式:command | xargs [选项] command
cat test .txt | xargs
在这里插入图片描述
cat test.txt | xargs -n3
在这里插入图片描述
-d 选项可以自定义一个定界符
例如:echo “minmin” | xargs -dx
在这里插入图片描述
xargs -0 将\0作为定界符
统计一个源代码中所有文件的行数 find -type f -name “txt" -print0 | xargs -0 wc -l
在这里插入图片描述
#查找所有的 jpg 文件,并且压缩它们:
find . -type f -name "
.jpg” -print | xargs tar -czvf images.tar.gz
#查找文件并删除 find ./ -name “.txt" | xargs rm -rf
在这里插入图片描述
#查找所有的 jpg 文件,并且压缩它们:
find . -type f -name "
.jpg” -print | xargs tar -czvf images.tar.gz
xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:

什么是正则表达式?
正则表达式是用于描述字符排列和匹配模式的一种语法原则。
它主要用于字符串的模式分割、匹配、查找及替换操作,其中最为重要的作用是匹配
grep(查找内容)
(1)格式:
grep 字符串 文件名
^string 行首以指定字符开头
string$ 行尾以指定字符结尾
[abc] 匹配中括号内任意字符
[^abc] 匹配非中括号内的任意字符
-v 匹配不包含指定字符的行
-i 匹配时忽略大小写
(2)常用用法:
选项与参数:
-a :将binary文件以 text 文件的方式搜寻数据
-c :计算找到 ‘搜寻字符串’ 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
–color=auto :可以将找到的关键词部分加上颜色的显示喔!
实际操作:
1.将test.txt 中包含m的行输出
在这里插入图片描述
2.把行号显示出来
显示小写m所在的行
在这里插入图片描述
-i :忽略大小写的不同,所以大小写视为相同
在这里插入图片描述

3.计算有多少行含有匹配的模式
在这里插入图片描述
4.与正则表达式结合

字符类的搜索:搜寻 test 或 taste 这两个单字, [] 里面不论有几个字节,他都谨代表某『一个』字节
在这里插入图片描述
在这里插入图片描述

反向搜索-- 字符类的反向选择 [^] :如果想要搜索到有 oo 的行,但不想要 oo 前面有 g,如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
行首 与 行尾字节 ^ $

注意:
^ 符号,在字符类符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』,在 [] 之外则代表定位在行首的意义!
下面例子为找到行首为t的,和行首为te的。
在这里插入图片描述
匹配空行,查找空格所在行数
在这里插入图片描述
查找以点结尾的(点代表任意字符)
在这里插入图片描述
若加入\,代表转义,此时,就不能代表任意字符,即必须以.结尾的字符
在这里插入图片描述
任意一个字节 . 与重复字节 *
这两个符号在正则表达式的意义如下:
. (小数点):代表『一定有一个任意字节』的意思;

  • (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态
    在这里插入图片描述

注意:
使用正则表达式时,有些特殊字符需要转移
例入:
查找A1.txt 中所有的数字
匹配第一个是数字,第二个任意,后跟至少一个数字
在这里插入图片描述
egrep不用转义的写法
在这里插入图片描述
匹配Ip地址
在这里插入图片描述

vi编一个c程序
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值