菜鸟的成长记录--linux 通配符和特殊字符集合的使用

通配符

当需要用命令查询所需要的结果时,用户不必全部查出一个一个找,可以使用Shell通配符。Shell命令的通配符含义如下表

符号 含义 实例
* 任意长度的任意字符 a*b,匹配如a3b、acb、aabc、a/b、a123,/b。
? 匹配任意单字符 a?b,匹配如a1b、acb、a,b
[ ] 匹配指定范围内的任意字符 a[xyz]b,匹配如axb、ayb、azb
[ - ] 匹配任意一个字符范围 a[a-z]b,匹配如ayb、acb、adb、aub
[^...] 除了指定的字符,均可匹配
a[^0-9]b,除了a0b-a9b,其它都匹配

特殊字符集合

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是A-Za-z0-9的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在Linux下的grep除fgrep外,都支持POSIX的字符类。

[:space:] : 所有空白字符

[:punct:] : 所有标点符号

[:lower:] :所有小写字母

[:upper:] :所有大写字母

[:digit:] :所有数字

[:alnum:] :所有数字和字母

[:alpha:] :所有字母

[:print:] :所有非空白字符(包括空格)

例子:

1、显示/tmp/ky目录下所有以字母开头的文件或目录

2、显示/tmp/ky目录下以字母开头,以一个小写字母结尾,中间出现一位数字的文件或目录

注意:命令行中间加*的意义就是,*表示任意长度的任意字符,也可以表示0个,所以在两个字符之间不知道是什么的情况下都要加*

3、显示/tmp/ky目录下以字母开头,以一个小写字母结尾,中间是空格的文件或目录
     

4、显示/tmp/ky目录下以字母结尾,中间是符号的文件或目录

5、显示/var目录下所有以l开头,以一个小字母结尾,且中间出现一位数字的文件或目录;

# ls /var/l*[[:digit:]]*[[:lower:]]

这个文件或目录并不存在,事先可以先创建,在进行检测

注意这里的[[:digit:]]为什么是双中括号呢,因为,[:digit:]就是表示一个集合,而表示范围内的字符,必须加中括号。所以就是[[:digit:]],固定格式

6、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

# ls -d /etc/[[:digit:]]*[^[:digit:]]

这个文件或目录并不存在,事先可以先创建,在进行检测

7、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度字符的文件或目录;

# ls -d /etc/[^[:alpha:]][[:alpha:]]*

这个文件或目录并不存在,事先可以先创建,在进行检测

8、复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录;

# mkdir /tmp/mytest1

# cp -r /etc/p*[^[:digit:]]  /tmp/mytest1

9、复制/etc/目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录;

# mkdir /tmp/mytest2

# cp -r /etc/*.d  /tmp/mytest2

10、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录;

# mkdir /tmp/mytest3

# cp -r /etc/[lmn]*.conf /tmp/mytest3

菜鸟的成长记录--linux 通配符和特殊字符集合的使用

时间: 2024-10-12 05:22:50

菜鸟的成长记录--linux 通配符和特殊字符集合的使用的相关文章

菜鸟的成长记录--linux正则表达式及grep

正则表达式 是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 元字符:不表示其字面意义,而用于额外功能性描述,下面是常用的元字符列表 符号 含义 . 表示匹配任意单个字符,例a.,匹配ab.ac.ad.ax * 表示它前面的字符可以出现任意次,例a*b,匹配aab.b.ab \? 表示它前面的字符可有可无,例a\?b,匹配a

菜鸟的成长记录--linux基础命令

以下是我学习时接触的命令,后续会慢慢添加 1.tty:查看终端类型 虚拟终端:/dev/tty# 伪终端:/dev/pts/# 控制台:/dev/console 串行终端:/dev/ttyS# 2.startx:启动图形界面 3.ifconfig:查看网卡信息 4.cd:进入用户主目录 cd ~:进入用户主目录 cd ~USERNAME:进入其他用户主目录 cd -:在前一个目录和当前目录来回切换 cd .:当前目录 cd ..:上一级目录 cd ../..:返回上两级目录 cd !$:把上一个

菜鸟的成长记录--linux之rpm

RPM 什么是rpm?rpm是RPM package manager的缩写,最早由RedHat公司提出的软件包标准,后来随着rpm的不断发展而又增加许多功能,逐渐的成为linux公认的软件包管理标准.支持该格式的厂商有RedHat linux.suse linux.Mandriva linux. Rpm的优点 由于RPM是通过预编译并打包成为rpm文件格式后再加以安装的一种方式,并且还能够进行数据库的记载,所以RPM有以下优点: 1.Rpm内含已经编译过的程序与设置文件等数据,可以让用户免除重新

菜鸟的成长记录--LVM

LVM LVM的全名是逻辑卷管理器.之所以成为卷,是应为它可以将文件系统像卷一样伸长或缩短.LVM的做法是将几个物理的分区或磁盘通过软件组合成为一块看起来是独立的大磁盘(VG),然后将这块磁盘在经过分区,分成可使用的分区(LV),最终就能够挂载使用了. PV 物理卷 我们实际的分区需要调整系统标示符(system ID)成为8e(LVM的标示符),然后在经过pvcreate的命令将它转成LVM最底层的物理卷(PV),之后才能够将这些PV加以利用. VG 卷用户组 所谓的LVM大磁盘就是将许多PV

菜鸟的成长——记录自己的每一次错误

作为一个菜鸟,在现在的学习中经常出错,观看视频之后自己编写代码还是很吃力的一件事情,但是这不能打消我的信心,只有自己一次次的更正错误面对困难和解决困难,才会成长,甚至我知道,自己的很多错误是让别人看起来和好笑的,只是,这是必须要经历的,我还是坚信,一切都会在未来的某一天好起来的,只要你每天都在努力. 下面的这个单元测试类,就是今天出错的一个,主要是因为Session和Transaction这些重复的代码提出去之后,在方法中还是没有替换成代表各自的对象名,导致出现了空指针异常. package q

Linux通配符与特殊符号知识大全汇总

符号 作用 Linux通配符 * 匹配任意(0个或多个)字符或字符串,包括空字符串 ? 匹配任意1个字符,有且只有一个字符 [abcd] 匹配abcd中任何一个字符,abcd也可是其他任意不连续字符 [a-z] 匹配中a到z之间的任意一个字符, a到z表示范围,字符前后要连续,-表示范围的意思,也可以用连续数字[1-9] [!abcd] 同[^abcd],表示不匹配括号里面的任何一个字符,也可为[!a-d] Linux特殊符号:路径和位置相关 ~ 用户的家目录,超级用户为/root,普通用户为/

菜鸟vimer成长记——第2.0章、模式初探

首先,其他的文本编辑器只有一种模式,就是插入模式.而vim一下子颠覆了我们的世界观——有好多模式.这个是思维上的切换,很难也很重要!!! 其次,Vim 提供一个区分模式的用户界面.也就是说在不同的模式下相同的键位可能产生的结果不一样.好多快捷怎么记忆?记忆后过段时间不使用又还给vim了.这个是因为没有弄清楚职责和使用场景,没有构建成套的vim知识体系.而我们这里通过模式为载体来构建vim知识体系. 目的 介绍vim的常用模式职责及模式切换,减少由于不断思考和纠正什么场景用什么模式的什么操作而引起

linux通配符,grep和 egrep区别

前些天写字符串匹配的脚本,如下:  1 #!/bin/sh 2 3 echo"path: /home/appadmin/workspace" 4 echo"usage: "$0" [h|cpp|both|all] string_symbol" 5 echo"space use: grep ' 'str" 6 7 if [ $1 = 'h']; 8 then 9 find . -name"*\.h" | xa

Linux通配符与特殊符号知识大全

符号 作用 Linux通配符 * 匹配任意(0个或多个)字符或字符串,包括空字符串 ? 匹配任意1个字符,有且只有一个字符 [abcd] 匹配abcd中任何一个字符,abcd也可是其他任意不连续字符 [a-z] 匹配中a到z之间的任意一个字符, a到z表示范围,字符前后要连续,-表示范围的意思,也可以用连续数字[1-9] [!abcd] 同[^abcd],表示不匹配括号里面的任何一个字符,也可为[!a-d] Linux特殊符号:路径和位置相关 ~ 用户的家目录,超级用户为/root,普通用户为/