Linux下通配符[^此处为字符集]与字符集[a-z]匹配出大写字母文件原因

不想看废话的可以直接看文末加粗部分。
今日学习通配符[^字符集]:匹配列表中所有字符以外的字符。
步骤:

  1. 创建文件touch f{a…z}.txt与 touch f{A…Z}.txt 。
  2. 用[^字符集]做筛选,选出除fa.txt,fb.txt……fz.txt文件以外的所有文件。
  3. 执行命令ls f[^a-f].* ,发现fA.txt,并未在结果显示中,但fZ.txt 在筛选结果中,如图。
    在这里插入图片描述

疑问:为什么大写字母的文件未在结果中,确独独漏了 Z?
解答:这是由于字符集编码不同导致的
LANG=C 它的字符集排序为a b c …z A B C…Z
LANG=zh_CN en_UK 这两种排序为a A b B c C…z Z
所以[^a-z]匹配的是从a到z的所有字符,而显然Z不包含其中。

tips:LANG=C 中的C基本上可以认为等价于 en_US.latin1
表示最简单的编码,只能显示最多 256 个字符
也就是通常指代 non-unicode application(这一句看的某不知名大佬的答案,侵删。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值