码迷,mamicode.com
首页 > 系统相关 > 详细

linux初学者-正则表达式

时间:2017-12-28 21:31:04      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:out   初学者   表达   技术   content   water   叠加   字符   track   

 

  在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初学者-正则表达式

标签:out   初学者   表达   技术   content   water   叠加   字符   track   

原文地址:https://www.cnblogs.com/davidshen/p/8137445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!