标题: [文本处理] grep新版本的一些问题 [打印本页]
作者: 娜美 时间: 2023-9-27 14:39 标题: grep新版本的一些问题
本帖最后由 娜美 于 2023-9-27 19:21 编辑
http://bcn.bathome.net/tool/3.11/grep64.exe
使用第三方
grep.exe --v3.11 版本, 使用bat方法用-P参数时 提示: grep: -P supports only unibyte and UTF-8 locales
难道新的grep3.11版本需要加什么参数吗? 还是版本自身编译问题? 感觉变化好大哦 !
grep.exe --v3.11- echo 000 | grep -P "[[:digit:]]"
- grep: -P supports only unibyte and UTF-8 locales
复制代码
但用grep.exe --v2.51 正常- echo 000 | grep -P "[[:digit:]]"
-
- 000
复制代码
作者: wanghan519 时间: 2023-9-27 17:06
回复 1# 娜美
我这里原来locale是zh_CN.UTF-8,-P参数正常- echo 你好 | LC_CTYPE=zh_CN.GBK grep -P '你好'
复制代码
同样报错,所以应该是locale必须设为UTF8
作者: 娜美 时间: 2023-9-27 19:01
本帖最后由 娜美 于 2023-9-27 19:27 编辑
回复 2# wanghan519
旧版本grep 2.51都能正常, 直接执行-P
- echo 000 | grep -P "[[:digit:]]"
- 000
复制代码
但新版grep3.11 bat执行报错- echo 000 | grep -P "[[:digit:]]"
- grep: -P supports only unibyte and UTF-8 locales
复制代码
作者: wanghan519 时间: 2023-9-28 03:04
回复 3# 娜美
我这的是git for windows里的3.1版本,也有这个问题
官方文档也说,要用LC_CTYPE 指定字符编码,所以可能不是bug,只是我不会在windows里指定使用utf8编码,猜测是因为编译时的参数不太一样吧。。。
https://www.gnu.org/software/grep/manual/grep.html#Character-Encoding
能想到的解决办法就是自己弄个msys2环境,无论是直接用或者装上mingw64自己编译都行
作者: CrLf 时间: 2023-9-28 23:14
似乎是编译问题,可以改用pcre2grep,语法应该是一样的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |