Mik*_*iko 4 regex unix unicode grep
我使用以下正则表达式运行 grep:
\ngrep -e "^[a-zA-Z]" file.txt
重点是只获取以 ascii 范围内的字母字符开头的行,如果我明确地输入字母表,那么这是有效的
\ngrep -e "^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]" file.txt
这已经很奇怪了,因为这就是[a-zA-Z]应该指定的内容。当我查看输入数据与第一个正则表达式的匹配时,我们得到如下匹配:
\xef\xac\x81\n \xef\xac\x82\n
请注意,在这些情况下 fi 和 fl 是一个字符。
\n从技术上讲,显式输入字母表是一种解决方案,但我宁愿
\n[a-zA-Z]不起作用grep 是区域设置感知的。[a-zA-Z]可以根据您的区域设置匹配非 ASCII 字符(例如 \xc3\xa1、\xc3\xa4、\xc3\xb8、\xc3\xa6)。要强制使用 ASCII(并且不处理任何多字节字符),请设置 C 语言环境:
LC_ALL=C grep -e '^[a-zA-Z]' file.txt\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |