【Linux入门】文件通配符模式

常见用法

* >=0个字符组成地任何字符串,但不匹配.开头的文件,即隐藏文件
# csdn @ edu in ~ [11:49:21] C:2
$ ls
1  2  4  a  c  Code

# csdn @ edu in ~ [11:49:22] 
$ ls C*
aaa

? 任意1个字符
# csdn @ edu in ~ [11:48:16] 
$ touch Code/aaa

# csdn @ edu in ~ [11:48:25] 
$ ls Cod?
aaa
[abc...] ‘[’ ']'中的任何一个字符
# csdn @ edu in ~ [11:47:24] 
$ ls
1  2  4  a  c  Code

# csdn @ edu in ~ [11:47:43] 
$ ls [a-z]
a:

c:

[^abc...] ‘[’ ']'中的以外任何一个字符
# csdn @ edu in ~ [11:34:24] C:2
$ ls
1  2  4  a  c  Code
# csdn @ edu in ~ [11:39:35] C:1
$ ls [^a]
1:

2:

4:

c:
[[:alpha:]] 任何字母字符
# csdn @ edu in ~ [23:53:34] 
$ ls
Code

# csdn @ edu in ~ [23:53:41] 
$ ls Code          
a

# csdn @ edu in ~ [23:53:49] 
$ ls Cod[[:alpha:]]
a
[a-z] 任意小写字母 [A-Z] 任意大写字母
# csdn @ edu in ~ [23:55:37] 
$ ls               
Code

# csdn @ edu in ~ [23:55:54] 
$ ls Code          
a

# csdn @ edu in ~ [23:55:58] 
$ ls Cod[a-z]
a

# csdn @ edu in ~ [23:56:01] 
$ ls [A-Z]ode
a
[[:lower:]] 任何小写字符
# csdn @ edu in ~ [11:34:24] C:2
$ ls
1  2  4  a  c  Code

# csdn @ edu in ~ [11:38:38] 
$ ls [[:lower:]]
a:

c:

[[:upper:]] 任何大写字符
# csdn @ edu in ~ [23:53:34] 
$ ls
Code

# csdn @ edu in ~ [23:53:41] 
$ ls Code          
a

# csdn @ edu in ~ [23:58:29] C:1
$ ls [[:upper:]]ode
a

[[:alnum:]] 任何字母字符或数字
# csdn @ edu in ~ [0:09:06] 
$ ls
c1  Code

# csdn @ edu in ~ [0:09:07] 
$ ls c1
w

# csdn @ edu in ~ [0:09:21] 
$ ls c[[:alnum:]]
w

# csdn @ edu in ~ [0:09:34] 
$ ls [[:alnum:]]1
w

[[:punct:]] 除括号和字母数字以外的任何可打印字符
# csdn @ edu in ~ [0:10:21] 
$ ls
c@  c1  Code

# csdn @ edu in ~ [0:10:22] 
$ ls c@
sd

# csdn @ edu in ~ [0:10:25] 
$ ls c[[:punct:]]
sd

[[:digit:]] [0-9] 从0-9的任何单个数字
# csdn @ edu in ~ [0:10:33] 
$ ls
c@  c1  Code

# csdn @ edu in ~ [0:10:53] 
$ ls c1
w

# csdn @ edu in ~ [0:11:02] 
$ ls c[[:digit:]]
w
[[:space:]] 任何一个空白字符(制表符、换行符、回车符、换页符、空格)

这个字符的实例有点难想,暂时没想到,大家如果有想到的可以交流交流
我试过用:vi aa //aa这个文件里有一些空格和制表符
然后用grep [[:space:]] aa
输出没有匹配项
也就是说[[:space:]]是一个正确的匹配模式,欢迎交流~

[:black:] 水平空白字符

这个与[[:space:]]一样没有想到实例,但是没有报错,所以[:black:]也是正确的匹配模式

[:punct:] 标点符号
# csdn @ edu in ~ [0:19:03] 
$ ls
a  a,  aa  c@  c1  Code  d

# csdn @ edu in ~ [0:19:04] 
$ ls a,
asds

# csdn @ edu in ~ [0:19:08] 
$ ls a[:punct:]
zsh: no matches found: a[:punct:]

嘶,这个不知道为什么,但[:punct:]却是正确的匹配模式,欢迎批评指正~

[:cntrl:] 控制(非打印)字符

也找不到实例

[:graph:] 图形字符

emm,找不到实例

[:xdigit:] 十六进制字符

这个不知道要怎么表示

~ 当前用户家目录
# csdn @ edu in ~ [0:23:07] 
$ cd a

# csdn @ edu in ~/a [0:23:12] 
$ cd ~

# csdn @ edu in ~ [0:23:16] 
$ 
~+. 当前工作目录

# csdn @ edu in ~/Code [0:24:29] 
$ pwd
/home/csdn/Code
# csdn @ edu in ~/Code [0:24:37] 
$ ls ~+

# csdn @ edu in ~/Code [0:24:45] 
$ ls .
...$表示以...结尾
^$表示空行
{}[]的区别:

{}中的内容进行全匹配,即便没有也会打印
[]中的内容进行正确匹配,只会打印有的内容

# csdn @ edu in ~ [11:32:52] 
$ ls
1  2  4  a  c  Code

# csdn @ edu in ~ [11:32:54] 
$ ls [1-4]
1:

2:

4:

# csdn @ edu in ~ [11:33:01] 
$ ls [a-c]
a:

c:

# csdn @ edu in ~ [11:33:10] 
$ ls {1..4}
ls: cannot access 3: No such file or directory
1:

2:

4:
# csdn @ edu in ~ [11:33:24] C:2
$ ls {a,b,c}
ls: cannot access b: No such file or directory
a:

c:

对于{a..c}并不代表从a到c,但{1..4}则表示1到4(在csdn的Linux平台上测试所得)

练习通配符模式的小游戏(正则表达式)

游戏入口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LenckCuak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值