linux命令通配符用法的简单介绍

Linux命令环境中的通配符有哪些?它们的不同点是什么?

通配符 1、基本的通配符有哪些? ·“?”可替代单个字符。 ·“*”可替代任意字符。 ·方括号“[charset]”可替代charset集中的任何单个字符。 对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。 通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代 替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符 包括字符包括字符对之间的所有字符。 与DOS相比,UNIX的通配符机制要比DOS好得多。在DOS中,任何在“*” 之后,在“.”之彰的字符均被忽略,所以下面的指令将不能得到你想 象的结果。 del *bak.* 在DOS中,用户只能用此命令删除当前目前下的所有文件,除非系统要 求你不这样做。而在UNIX系统中,“*”可替代包括0在内的任意数字的 字符,但一行中的其余特征也仍需匹配,因此“bak.*”可匹配 newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因为后 者不含“.”。这非常巧妙,可大大方便用户,而“*bak”则可匹配以上 所有的词条,包括newbak。 2、能在一条指令中用多个通配符吗? 可以,如 rm a*out*tmp? 该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1 等。 3、如何利用通配符使指令更灵活? UNIX可将有一定关的文件看作一集合的一部分,用户可以用该集合去匹配。 所以,如果你需要删除file1.temp、file2.temp……file9.temp,只须健入: rm file[0-9].temp 该技巧的用处在于可以用删除那些相要删除的文件。如果你每天都要为一个 非常重要的 数据库 做一个“dump”报告,你把文件存入dump.date%h%d, 它包括一系列文件如下: dump.jun23 dump jun24 dump jun25 dump.jun26 再让我们假设因为每个文件的容量都在100M左右,所以磁盘空间很快会被占满, 因此需要每隔几天删去一些老的文件,只留下最近的两个文件,为此,键入: rm –i du*[34] 这条指令将删去那些以“du”开头并以“3”或“4”结尾的文件。

定南ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

Linux正则表达式与通配符

正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索或替换那些符合某个模式的文本内容。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

只有掌握了正则表达式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法

grep、sed、awk天然支持正则

grep -v代表反选,反向选择匹配到的内容

grep -E代表使用扩展正则

grep -P代表使用Perl正则

sed -r 代表使用扩展正则

正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)

1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)

3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

b. 处理过程:查找文本文件中是否包含要查找的 “关键字”(关键字可以是正则表达式) ,默认返回匹配的该行的内容

c. grep|egrep处理文件时,按行处理 |

| sed | sed | sed -r | - | a. 处理对象:文本文件

b.处理操作:对文本文件的内容进行 查找、替换、删除、增加等操作

c. sed 在处理文本文件的时候,按行处理 |

| awk | - | awk | - | a. awk 处理的对象:文本文件

b. awk 处理操作:主要是对列进行操作 |

注意:egrep 或 sed -r 默认使用扩展正则表达式(EREs),一般特殊字符({})可以不转义

grep -E 以及egrep(Extend Regular Expression)

Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别 。

通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。

通配符说明

示例:* 的使用:代表任意0-N个字符,代表所有字符

Linux的基本命令格式如何?Linux下经常使用的通配符有哪些?

Linux的基本命令格式:

命令 [-选项] [参数]

例如

ls -a /etc

ls - l  /etc

makdir -p /abc/cba

linux常用通配符有* ,?,[ ],[^],[:space:],[:punct:],[:lower:],[:upper:],[:digit:],[:alnum:]等等。

*  匹配任意长度的任意字符

?匹配任意单个字符

[ ]匹配制定范围内的单个字符[^]匹配制定范围外的单个字符

[:space:]匹配单个空白字符

[:punct:]匹配单个标点符号字符

[:lower:]匹配单个小写字母字符

[:upper:]匹配单个大写字母字符

[:digit:]匹配单个数字字符

[:alnum:]匹配单个数字和字母字符

以上通配符在使用时还需再加一个[ ]

更多详细Linux知识可参考《Linux就该这么学》。

Linux通配符知识入门详解

我的个人博客:

通配符一般用户命令行bash环境,而Linux正则表达式用于grep,sed,awk场景。

linux--10、管道命令符和命令行通配符

管道命令符 " | " 的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为"命令A|命令B"。

例如:

搜索rsyslogd进程: $ ps -ef | grep rsyslogd

用反野形式查看/etc 目录中有哪些文件: $ ls -l /etc/ | more

bash解释器支持多种文本通配符,包括:

我们之前在学文本查询搜索命令时就用到了通配符,例如,在 /etc 目录下搜索所有的以host开头的文件:

$ find /etc -name "host*"

另外,bash解释器还支持很多的特殊字符扩展:

例如:

先定义名称为PRICE的变量值为5

$ PRICE=5

输出“价格是5”:

输出“价格是$5”,但因为美元符号与代表变量取值的$符号冲突,所以需要用到转义字符:

使用单引号,变量将不再被取值:

执行 uname -a 后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):


分享文章:linux命令通配符用法的简单介绍
网址分享:http://csdahua.cn/article/hoihpe.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流