通配符与正则表达式
Posted zzfx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通配符与正则表达式相关的知识,希望对你有一定的参考价值。
http://blog.sina.com.cn/s/blog_4b9eab320101ge6q.html
网友看法: (总结精辟!)
通配符是系统level的 而正则表达式需要相关工具的支持: egrep, awk, vi, perl。
在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。
通配符多用在文件名上,比如查找find,ls,cp,等等。
通配符
在您日常的 Linux 使用中,有很多时候您可能需要一次对多个文件系统对象执行单一操作(比如rm)。在这些情况下,在命令行中输入许多文件通常让人感到厌烦:
$ rm file1 file2 file3 file4 file5 file6 file7 file8
为了解决这个问题,您可以利用 Linux 内置的通配符支持。这种支持也叫做“globbing”(由于历史原因),允许您通过使用通配符模式一次指定多个文件。Bash 和其它 Linux 命令将通过在磁盘上查找并找到任何与之匹配的文件来解释这种模式。因此,如果在当前工作目录中,您有从 file1 到 file8 的文件,那么您可以输入下面的命令来删除这些文件:
$ rm file[1-8]
或者,如果您只想要删除文件名以 file 开头的所有文件,您可以输入:
$ rm file*
或者,如果您想要列出 /etc 中以 g 开头的所有文件系统对象,您可以输入:
$ ls -d /etc/g*
/etc/gconf /etc/ggi /etc/gimp /etc/gnome /etc/gnome-vfs-mime-magic /etc/gpm /etc/group /etc/group-
现在,如果您指定了没有任何文件系统对象与之匹配的模式,会怎么样呢?在下面的示例中,我们试图列出 /usr/bin 中以 asdf 开头并且以 jkl 结尾的所有文件:
$ ls -d /usr/bin/asdf*jkl
ls: /usr/bin/asdf*jkl: No such file or directory
以上是关于通配符与正则表达式的主要内容,如果未能解决你的问题,请参考以下文章