分页: 1 / 2

這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 19:49
millenniumdark

代码: 全选

$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
一
二
三
五
六
七
八
九
十
爲什麼沒四(事)?

GNU grep 2.5.4

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:01
alvin_rxg
:em05

代码: 全选

一 => U+4E00
十 => U+5341
四 => U+56DB

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:09
millenniumdark
啊?原來grep比我想象中的笨很多啊!

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:15
lilydjwg

代码: 全选

>>> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:30
millenniumdark
lilydjwg 写了:

代码: 全选

>>> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
妳用的不是GNU grep吧?BSD的還是busybox的?

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:40
susbarbatus

代码: 全选

~> grep -V
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
GPLv3+ 许可证: GNU 通用公共许可证第三版或更高版本 <http://gnu.org/licenses/gpl.html>。
这是自由软件: 您可自由更改并重新分发它。
在法律所允许的范围内,不附带任何担保条款。

作者 Mike Haertel 和 其余作者请参看 <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>。
~> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
~> 

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 20:52
b33e

代码: 全选

~$ echo '一二三四五六七八九十' | grep -oE '[[:alpha:]]'
一
二
三
四
五
六
七
八
九
十

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 21:15
millenniumdark
susbarbatus 写了:

代码: 全选

~> grep -V
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
GPLv3+ 许可证: GNU 通用公共许可证第三版或更高版本 <http://gnu.org/licenses/gpl.html>。
这是自由软件: 您可自由更改并重新分发它。
在法律所允许的范围内,不附带任何担保条款。

作者 Mike Haertel 和 其余作者请参看 <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>。
~> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
~> 
locale 問題?

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 21:19
millenniumdark
b33e 写了:[[:alpha:]]
這就不光match數字了。

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-09-29 23:14
susbarbatus
millenniumdark 写了:
susbarbatus 写了:

代码: 全选

~> grep -V
grep (GNU grep) 2.14
Copyright (C) 2012 Free Software Foundation, Inc.
GPLv3+ 许可证: GNU 通用公共许可证第三版或更高版本 <http://gnu.org/licenses/gpl.html>。
这是自由软件: 您可自由更改并重新分发它。
在法律所允许的范围内,不附带任何担保条款。

作者 Mike Haertel 和 其余作者请参看 <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>。
~> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
~> 
locale 問題?
是locale问题,不过我不理解为什么locale是zh_CN的时候反而不行,用en_US才可以……

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-10-02 18:08
millenniumdark
susbarbatus 写了: 是locale问题,不过我不理解为什么locale是zh_CN的时候反而不行,用en_US才可以……
奇怪了,照理zh_CN.UTF-8和en_US.UTF-8在這裏是一樣的,反正grep認unicode

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-10-02 18:12
jtshs256

代码: 全选

$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
一
二
三
四
五
六
七
八
九
十
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD
$ locale
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-10-02 18:16
枫叶饭团

代码: 全选

ef>echo '一二三四五六七八九十' | grep -oE '[一-十]' 
grep: Invalid collation character

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-10-02 19:04
millenniumdark
jtshs256 写了:

代码: 全选

$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
一
二
三
四
五
六
七
八
九
十
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD
啊?BSD的grep結果不一樣?好奇怪 :em20

Re: 這個難道是grep沒事的彩蛋麼?

发表于 : 2012-10-02 19:15
cuihao

代码: 全选

cuihao@cuihao-arch ~ $ echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
cuihao@cuihao-arch ~ $ echo '一二三四五六七八九十' | LC_ALL="en_US.utf8" grep -oE '[一-十]'
一
二
三
五
六
七
八
九
十