代码: 全选
$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
一
二
三
五
六
七
八
九
十
GNU grep 2.5.4
代码: 全选
>>> echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
妳用的不是GNU grep吧?BSD的還是busybox的?lilydjwg 写了:代码: 全选
>>> echo '一二三四五六七八九十' | grep -oE '[一-十]' grep: Invalid range end
代码: 全选
~> 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
~>
代码: 全选
~$ echo '一二三四五六七八九十' | grep -oE '[[:alpha:]]'
一
二
三
四
五
六
七
八
九
十
locale 問題?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是zh_CN的时候反而不行,用en_US才可以……millenniumdark 写了:locale 問題?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 ~>
奇怪了,照理zh_CN.UTF-8和en_US.UTF-8在這裏是一樣的,反正grep認unicodesusbarbatus 写了: 是locale问题,不过我不理解为什么locale是zh_CN的时候反而不行,用en_US才可以……
代码: 全选
$ 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=
代码: 全选
ef>echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid collation character
啊?BSD的grep結果不一樣?好奇怪jtshs256 写了:代码: 全选
$ echo '一二三四五六七八九十' | grep -oE '[一-十]' 一 二 三 四 五 六 七 八 九 十 $ grep -V grep (BSD grep) 2.5.1-FreeBSD
代码: 全选
cuihao@cuihao-arch ~ $ echo '一二三四五六七八九十' | grep -oE '[一-十]'
grep: Invalid range end
cuihao@cuihao-arch ~ $ echo '一二三四五六七八九十' | LC_ALL="en_US.utf8" grep -oE '[一-十]'
一
二
三
五
六
七
八
九
十