shell grep正则匹配汉字
Shell grep正则匹配中文
测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响:
我们中文操作系统ASNI默认是GBK的。
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include <string.h> 4 #include <errno.h> 5 #include <locale.h> 6 #include <dlfcn.h> 7 8 /* 9 * export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/tmp; /data/local/tmp/demo_exe 10 */ 11 int main(int argc, char** argv) { 12 // 这个是中文 13 void *handle = NULL; 14 char* locname = setlocale(LC_ALL, ""); 15 // 这个是中文 16 // 17 if ((handle = dlopen(demo_dso_so, RTLD_NOW)) == NULL) { 18 printf("dlopen出错: %s\n", dlerror()); 19 } 20 printf("@%s[%s]dlopen return handle = %#x.\n", __FILE__, __FUNCTION__, handle); 21 // 这个是 22 // 中文 23 return 0; 24 }
1、匹配特定文字:
$ grep -nP "\xE4\xB8\xAD\xE6\x96\x87|\xD6\xD0\xCE\xC4" ./demo_exe.c
12:// 这个是中文
15:// 这个是中文
22:// 中文
编码 | 中 | 文 | 在线码表 |
GBK | D6D0 | CEC4 | http://www.lhelper.org/tech/chinese_internal_code_specification_classified.txt |
Unicode | 4E2D | 6587 | |
UTF-8 | %E4%B8%AD | %E6%96%87 | http://wenku.baidu.com/link?url=DfbzjKLcRaQ7yVIA_EHVP7mKdVbkggq4hwkCmmO9uR76Jib_5Y1Y_h616NnI21XY_x85YZqN1SQBAdCFQjklS_ |
GBK码 : 中=D6D0,文=CEC4
Unicode码:中=4E2D,文=6587
UTF-8码:中=%E4%B8%AD,文=%E6%96%87
2、匹配特定范围文字
$ grep -nP "[\xB0\xA1-\xF7\xFE]+" /home/fangss/c/dynamic_share_object_test/demo_exe.c
12:// 这个是中文
15:// 这个是中文
18: printf("dlopen出错: %s\n", dlerror());
21:// 这个是
22:// 中文
范围:
● GBK/2: GB2312 汉字 B0 0 1 2 3 4 5 6 7 8 9 A B C D E F A 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘 B 鞍 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱 C 袄 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋 D 靶 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑 E 班 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮 F 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥
。。。
F7 0 1 2 3 4 5 6 7 8 9 A B C D E F A 鳌 鳍 鳎 鳏 鳐 鳓 鳔 鳕 鳗 鳘 鳙 鳜 鳝 鳟 鳢 B 靼 鞅 鞑 鞒 鞔 鞯 鞫 鞣 鞲 鞴 骱 骰 骷 鹘 骶 骺 C 骼 髁 髀 髅 髂 髋 髌 髑 魅 魃 魇 魉 魈 魍 魑 飨 D 餍 餮 饕 饔 髟 髡 髦 髯 髫 髻 髭 髹 鬈 鬏 鬓 鬟 E 鬣 麽 麾 縻 麂 麇 麈 麋 麒 鏖 麝 麟 黛 黜 黝 黠 F 黟 黢 黩 黧 黥 黪 黯 鼢 鼬 鼯 鼹 鼷 鼽 鼾 齄
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。