bash中的通配符小结

【bash中的通配符】

在 Bash 中,如果需要模糊匹配文件名或目录名,就要用到通配符。下面为常用的通配符

【通配符】 【说明】

* 匹配0或任意个字符

? 匹配一个任意字符

[-] 匹配中括号的字符。例如[a-b],匹配小写字母,只会匹配集合中的一个

[^]或[!] 匹配除了中括号的一个字符。例如[^0-9],匹配除了数字的字符,只会匹配集合中的一个

{ab,ba} 匹配其中一个字符串。例如匹配ab或ba

[[:class:]] 匹配属于字符类class中的任意单个字符

常见的字符类包括:

[:alnum:]:匹配任意一个字母和数字字符。

[:alpha:]:匹配任意一个字母字符。

[:blank:]:匹配空格和制表符。

[:digit:]:匹配任意一个数字字符。

[:graph:]:匹配任意一个可打印字符(不包括空格)。

[:lower:]:匹配任意一个小写字母。

[:print:]:匹配任意一个可打印字符(包括空格)。

[:punct:]:匹配任意一个标点符号。

[:space:]:匹配任意一个空白字符,包括空格、制表符、换页符等。

[:upper:]:匹配任意一个大写字母。

[:xdigit:]:匹配任意一个十六进制数字字符。

下面是一些验证实例:

[apps@test-001 ~]$ touch lmgs

[apps@test-001 ~]$ ls l[!o]gs

lmgs

[apps@test-001 ~]$ ls l[^o]gs

lmgs

[apps@test-001 ~]$ ls l{og,mg}*

lmgs

logs:

csp nacos

据此我们创建文件的时候可以根据通配符精确创建需要的文件,例如

[apps@test-001 ~]$ touch steven{mama,baba}.log

[apps@test-001 ~]$ ls steven*

stevenbaba.log steven.json stevenmama.log steven.txt

【验证字符类的实例】

[apps@test-001 ~]$ touch l12345gs

[apps@test-001 ~]$ ls l[[:alnum:]]*

l12345gs lmgs

logs:

csp nacos

【中间不出现数字的文件[![:digit:]]】

[apps@test-001 ~]$ ls l[![:digit:]]gs

lmgs

logs:

csp nacos

~]$ ls l[^[:digit:]]gs

lmgs

logs:

csp nacos

【综上:通过以上实验,我们可以看到在通配符中相反的含义[^]或[!]两者实现的效果是等价的】

相关推荐
ChinaRainbowSea28 分钟前
1. Linux下 MySQL 的详细安装与使用
linux·数据库·sql·mysql·adb
致奋斗的我们1 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
百锦再1 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker
忧虑的乌龟蛋2 小时前
嵌入式 Linux:使用设备树驱动GPIO全流程
linux·服务器·嵌入式·imx6ull·gpio·点灯·pinctrl
朝九晚五ฺ2 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
小林熬夜学编程2 小时前
【MySQL】第八弹---全面解析数据库表的增删改查操作:从创建到检索、排序与分页
linux·开发语言·数据库·mysql·算法
m0_748236112 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
linux·spring boot·后端
鱼不如渔2 小时前
leetcode刷题第十三天——二叉树Ⅲ
linux·算法·leetcode
梦游钓鱼3 小时前
beremiz笔记chatgpt,部署在Ubuntu:20.04版本
linux·笔记·ubuntu
至少零下七度3 小时前
Mac book Air M2 用VMware安装 Ubuntu22.04
linux·ubuntu·vmware·虚拟机