在windows中,是没有办法批量处理文件的,但是在linux系统中,可以通过命令直接处理一系列文件,这些文件的处理就需要用到正则表达式。这同样可以应用与目录。

1、处理多个文件

正则表达式中批量处理文件常用的有"{}"。例如如果需要建立文件"file1"-"file10",如果在windows中,只能一个一个建立,但是在linux中,可以直接通过正则表达式来实现,建立这十个文件,可以输入命令"touch file{1..10}",目录中就会直接出现十个文件了。"1..10"中的数字也可以换成字母组合。如果用"{1..3}{a..b}"则可以表示1a,2a,3a,1b,2b,3b。

同样,可以输入命令"rm -f file{1..10}"来删除这十个文件。也同样适用于复制、移动。

2、匹配字符

匹配字符主要应用于批量处理具有某种共同特征的文件。在匹配的正则表达式中,比较特殊的是"*"和"?","*"可以匹配到任意位数的任意字符。"?"可以匹配到任意的单个字符,可以叠加使用。如现有文件"file5"到"file10",使用"rm -f file*"可以直接删除这6个文件。如果使用"rm -f file?",则删除文件"file"后面只有一位的文件,不会删除"file10"。

如果有文件名为"wae""wAe""w1e""w!e""w e"的文件,删除不同类型的文件,则需要不同的匹配命令。

输入"rm -f w[[:lower:]]e"可以删除"wae"文件。

"rm -f w[[:upper:]]e"可以删除"wAe"文件。

输入"rm -f w[[:digit:]]e"删除"w1e"文件。

输入"rm -f w[[:punct:]]e"可以删除"w!e"文件。

输入"rm -f w[[:space:]]e"可以删除"w e"文件。

[[:lower:]]匹配单个小写字母,[[:upper:]]匹配单个大写字母,[[:digit:]]配单个数字,[[:punct:]]匹配单个符号,[[:space:]]匹配单个空格,除此之外,[[:alpha:]]匹配单个字母,[[:alnum:]]匹配单个数字或字母。

如果有文件"file1"-"file5",如果需要删除其中的"file1"和"file3"和"file5",则需要用到另一种正则表达式[135],这表示1或者3或者5,即输入命令"rm -f file[135]"。也可以用[!24]或者[^24],这表示除了2并且除了4。需要注意的是,"{}"可以用于存在或者不存在的文件,但是"[]"只能用于存在的文件。

  需要注意的是,"{}"可以用于存在或者不存在的文件,但是"[]"只能用于存在的文件。

上述就是正则表达式的一般应用。

linux初学者-正则表达式的更多相关文章

  1. linux shell 正则表达式(BREs,EREs,PREs)差异比较

    linux shell 正则表达式(BREs,EREs,PREs)差异比较 则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符 串的单个字符串.在很多文本编辑器或其他工具里 ...

  2. Linux初学者必知的5个学习网站

    分享几个Linux初学者一定要知道的5个学习网站 工具/原料 有一颗学习Linux的心 电脑 方法/步骤 1 推荐一:鸟哥的Linux私房菜(http://vbird.dic.ksu.edu.tw/) ...

  3. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  4. 07: linux中正则表达式与grep使用

    1.1 linux中正则表达式 1.^linux        以linux开头的行 2.$php         以php结尾的行 3..                匹配任意单字符 4..+  ...

  5. linux shell 正则表达式(BREs,EREs,PREs)的比较

    原文 :   linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...

  6. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  7. linux初学者-firewall篇

     linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...

  8. linux初学者-mail篇

     linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...

  9. linux初学者-iptables篇

     linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...

随机推荐

  1. hadoop 数据抽取

    #!/bin/bash if [ ! -z $2 ]; then start_time=$1 end_time=$2 else starttime=`date +%Y%m%d%H%M -d '-15 ...

  2. ansible(二)

    一.软件相关模块 1.yum(下载包) 正常操作 yum 与rpm的区别 yum可以解决依赖关系rpm 全称readhat package manager(红帽包管理工具),需要自己解决依赖 yum源 ...

  3. ORACLE(系统表student) 基本与深入学习

    (一).首先我们先创建student表(系统有的可以跳过往下看)没有直接复制运行即可. create table student(sno varchar2(3) not null, --学号sname ...

  4. 使用docker启动mysql

    安装docker 查询mysql版本, docker search mysql 拉取指定版本的镜像 docker pull NAME 启动镜像, 第一次启动最少需要指定MYSQL_ROOT_PASSW ...

  5. tomcat源码分析(一)- tomcat源码导入IDEA并正常启动

    项目导入 代码下载 打开GitHub网站:https://github.com/apache/tomcat 下载对应的zip包 解压对应的压缩包(当然你也可以用工具对其进行解压) unzip tomc ...

  6. 你真的会用mysql行级锁吗?mysql 行级锁全解析

    在互联网大并发应用大行其道的今天,应用的开发总是离不开锁,在分布式应用中,最常见的莫过于基于数据库的行级锁了,由于互联网公司中比较主流的数据库还是mysql,所以这一话题绕不开的就是mysql了,但是 ...

  7. C++ 洛谷 2014 选课 from_树形DP

    洛谷 2014 选课 没学树形DP的,看一下. 首先要学会多叉树转二叉树. 树有很多种,二叉树是一种人人喜欢的数据结构,简单而且规则.但一般来说,树形动规的题目很少出现二叉树,因此将多叉树转成二叉树就 ...

  8. 使Toast弹出不重叠的封装

    一.问题 在频繁弹出toast的时候,弹出后出现延迟重叠的现象. 二.解决 Toast通常由makeTextT()方法实例化,如何不想要toast弹出时重叠,那么只需在应用中保持一个Toast对象即可 ...

  9. DBA主宰一切请求,MySQL 查询重写

    这个功能一年左右之前就以知晓,应该是5.7的高版本中.今天难得有兴致测试.随之也就总结一下. 前言: 一般来说,我们都会让开发自己去改sql.这样需要重启应用,单节点不可避免有或多或少的停服时间.同事 ...

  10. flask高级编程 LocalStack 线程隔离

    转:https://www.cnblogs.com/wangmingtao/p/9372611.html   30.LocalStack作为线程隔离对象的意义 30.1 数据结构 限制了某些能力 30 ...