Linux&shell通过正则表达式查找文件练习
linux&shell编程中通过正则表达式来匹配查找文件极大的提高查找效率。
首先,解释一下下边出现的命令。
linux部分:
ls:查看文件夹内的命令。
|:管道。
grep:搜索后边匹配的字符串命令。
>重定向
>>增量
正则表达式部分:
^:匹配起始符。
$:匹配结束符。
[a-z]:匹配括号内的字母,可以单写。
[^a-z]:括号内加入^可以进行反向匹配。
.:匹配一个字符,除换行符以外的。
*:重复0-n次。
+:重复1-n次。
?:重复0次或者一次。
{n}:重复n次。
{n,m}:重复n-m次。
{n,}:重复n次以上。
|:或匹配符,但是使用时需要转译。
上边是正则表达式常用的部分,另外正则表达式运用广泛,我接触到的可以用在web前后端信息验证,爬虫中信息匹配,数据库内数据匹配,程序中的数据匹配等等。
-------------------------关于linux&shell中,正则表达式的运用---------------------------
step1:空文件的建立
使用hubobo或xujiji用户在用户主目录~下依次创建如下文件:
class1、and、class2、no、minna、please、hand、in、your、homework、before、November、5th
step2:简单字符串定向查询练习。
查询用户主目录~下文件名包含s1字符串的文件,并将查询结果重定向到myhomework文件中。
ls~|grep “s1”>>myhomework
step3:起始标志符练习。
查询用户主目录~下文件名以a字母开头的文件,并将查询结果增量重定向到myhomework文件中。
知识点:
ls~|grep “^a”>>myhomework
step4:结尾标识符练习。
查询用户主目录~下文件名中以2数字结的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “2$”>>myhomework
step5:起始与结尾标识符配合使用练习。
查询用户主目录~下文件名中以n字母开始以o字母结尾,中间不限字符的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “^n.*o$”>>myhomework
step6:固定字符长度查询条件使用练习。
查询用户主目录~下文件名中长度是5位的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “^.\{5\}$”>>myhomework
step7:定向位数查询练习。
查询用户主目录~下文件名第四位是a字母的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “^…a.*”>>myhomework
step8:特定多字符的查询条件练习。
查询用户主目录~下的文件名有h字母,并且有d字母,且h字母在d字母之前的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “[h]*[d]”>>myhomework
step9:管道嵌套组合查询
查询用户主目录~下文件名是以i开头且长度为2的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “i.\{1\}”>>myhomework
step10:管道嵌套组合并非集查询练习
查询用户主目录~下文件名不在a-n、p-q、s-t、v-x、z中,且文件名长度为为4的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “^[^a-np-qv-xz]\{3\}”>>myhomework
step11:任意字符出现固定次数的查询练习
查询用户主目录~下文件名中出现了两次o的文件,可连续,也可不连续出现,并将查询结果增量重定向到myhomework文件中。
ls~|grep “o.*o”>>myhomework
step12:多查询条件的查询练习。
查询用户主目录~下文件名中出现be或者re字符串的文件,并将查询结果增量重定向到myhomework文件中。
ls~|grep “be\|re”>>myhomework
step13:自由查询练习。
将用户主目录~下文件5th用任意方式单独查出,注意,不可直接使用字符串查询,要有正则表达式的内容体现,且结果只能有5th,而不能有其他结果,并将查询结果增量重定向到myhomework文件中。
ls~|grep “^5th$”>>myhomework
Linux&shell通过正则表达式查找文件练习的更多相关文章
- Linux - Shell - 在多个文件中查找关键字
1. 概述 在多个文件中 查找内容 2. 想干啥 目的 在 多个文件 中, 查找内容 准备 之前在 单个文件里 查找过内容 工具 awk 前提 文件有固定格式 查找时有字段的要求 例子 # print ...
- Linux中常用的查找文件的命令
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料(参考资料1),因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. w ...
- 菜鸟学Linux命令:find命令 查找文件
find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录] [查找规则(选项)] [查找完后执行的动作] 参数规则 - ...
- linux系统中批量查找文件与文件内容的方法
在linux中查看与修改文件权限我们都必须使用命令来操作,不能像windows一样点几下就好了,下面我们简单的介绍一下linux中的相关命令 比如查找当前目录下面所有的php文件里面某个关键字 fin ...
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...
- linux find 根据条件查找文件
版权为个人所有,欢迎转载如转载请说明出处.(东北大亨) http://www.cnblogs.com/northeastTycoon/p/5513231.html 1. 实现说明 按照某一个时间点查找 ...
- linux常用命令指南——查找文件我最强:find
2.3.2 查找文件我最强:find 2.3.2.1 find查找常用命令示例 find / -name 'wfy.txt' # 从根目录下开始查找文件wfy.txt find . -name '*f ...
- linux shell下除了某个文件外的其他文件全部删除的命令
Linux反选删除文件 最简单的方法是 # shopt -s extglob (打开extglob模式) # rm -fr !(file1) 如果是多个要排除的,可以这样: # rm -r ...
- linux shell 之终端读写文件数据流和重定向>,<,<<,>>
终端实现文件中数据流的读写: 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file.将终端数据写到文件file中 command < file 将输入重 ...
- Linux中一个快速查找文件和目录的命令
功能介绍: locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不 ...
随机推荐
- DIKI:清华提出基于残差的可控持续学习方案,完美保持预训练知识 | ECCV'24
本研究解决了领域-类别增量学习问题,这是一个现实但富有挑战性的持续学习场景,其中领域分布和目标类别在不同任务中变化.为应对这些多样化的任务,引入了预训练的视觉-语言模型(VLMs),因为它们具有很强的 ...
- 浅析RocketMQ
SpringBoot引入RocketMQ 快速构建单机RocketMQ https://www.haveyb.com/article/3079 参考这篇文章,快速构建单机RocketMQ 项目引入ja ...
- 调试npm下载的组件
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- Whizard:跨越 Thanos 从开源项目到生产就绪的鸿沟
此文是根据 KubeSphere 在 KubeCon China 2024 上的演讲分享整理而成. 议题简介 作为最受欢迎和强大的 Prometheus 长期存储项目之一,Thanos 被社区广泛采用 ...
- 【磐维数据库】Oracle(透明网关)访问磐维数据库(PanWeiDB)
磐维数据库(PanWeiDB)是由中国移动基于中国本土开源数据库openGauss打造的自研数据库产品,主要面向ICT基础设施.它具有高性能.高可靠性.高安全性和高兼容性的特点,能够支持集中式.分布式 ...
- 顶点着色网格转换为 UV 映射的纹理化网格
简介 顶点着色是一种将颜色信息直接应用于网格顶点的简便方法.这种方式常用于生成式 3D 模型的构建,例如 InstantMesh.然而,大多数应用程序更偏好使用 UV 映射的纹理化网格. 本教程将介绍 ...
- 基于surging的木舟平台如何上传模块热部署
一.概述 通过3个月的赶工,基本上快完成1.0版本的研发,将在下个月发布社区1.0版本. 木舟 (Kayak) 是什么? 木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行 ...
- Linux再学!
第三篇Linux入门 一.linux基本指令 1.Linux根目录为/,后续路径用/分隔,如/home/admin 2.Linux命令 基础格式: command: 命令本身 -options:[可选 ...
- 前端稳定性工具-Sentry
什么是Sentry? Sentry本质上是一个服务器端的应用程序,它接收来自客户端(如Web应用程序.移动应用程序或后端服务)的错误日志,然后对这些日志进行聚合.分析和可视化.它提供了详细的错误报告, ...
- Hello Markdown(完结)
Hello Markdown Markdown是一种轻量级的「标记语言」. 专注于文字内容: 纯文本,易读易写,可以方便地纳入版本控制: 语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排 ...