LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1710|回复: 26

哪位大侠指点一下?

[复制链接]
发表于 2006-9-19 20:33:48 | 显示全部楼层 |阅读模式
richard@debian:~$ cat c
cat
cAt
richard@debian:~$ grep c[a-z]t c
cat
cAt
richard@debian:~$ grep c[A-Z]t c
cAt
richard@debian:~$
----------------------------------
请看以上的命令,[a-z]不是应该匹配小写字母吗?为什么cat cAt一起被输出了?
而[A-Z]却正常起了作用?
真是疑惑
发表于 2006-9-19 21:36:32 | 显示全部楼层
echo $LC_COLLATE
回复 支持 反对

使用道具 举报

发表于 2006-9-19 21:40:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2006-9-19 21:46:34 | 显示全部楼层
? 这个和glob并无关系。
回复 支持 反对

使用道具 举报

发表于 2006-9-19 21:56:27 | 显示全部楼层
我刚才又测试了一下,并没有得到楼主上面的结果。楼主能否把测试目录下的文件名列出来看看?

我刚才是怀疑,是不是把[a-z],[A-Z]扩展成了楼主测试目录下的哪个文件名。故有此链接。
$LC_COLLATE这个变量是什么来的?我这儿没有设置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-19 21:58:30 | 显示全部楼层
echo $LC_COLLATE
---------------------------
大å,Õ了¡Í”啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-19 22:06:03 | 显示全部楼层
richard@debian:~$ ls
a  book  c  Desktop  download  f  font  learning  music  myfile  photo  program
richard@debian:~$ cat c
cat
cAt
richard@debian:~$ grep c[a-z]t c
cat
cAt
richard@debian:~$ grep c[A-Z]t c
cAt
richard@debian:~$
--------------------------------------------------------
测Õ的î录 在第一行
回复 支持 反对

使用道具 举报

发表于 2006-9-19 22:10:06 | 显示全部楼层
上面乱码,看不到。

LC_ALL=C grep c[a-z]t c
回复 支持 反对

使用道具 举报

发表于 2006-9-19 22:15:22 | 显示全部楼层
LC_COLLATE顾名思义,提供了集合排序的定义。不同locale下,表现不同,要想获得预期的和传统一致的表现,把LC_COLLATE设为C,en_US都不行。

所以我一直反对用LC_ALL变量设置locale,它的优先级别太高。

我一般是

export LANG=xxx
export LC_COLLATE=C
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-19 22:16:16 | 显示全部楼层
Post by troll
上面乱码,看不到。

LC_ALL=C grep c[a-z]t c
something is wrong
I can not in put chinese now
But what is the meaning of thisC_ALL=C?
I have tried it and it displayed corretly this time.
this is the out put :
richard@debian:~$ LC_ALL=C grep c[a-z]t c
cat
richard@debian:~$
#anyway thank you very much
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表