Skip to content Skip to main navigation Skip to footer

shell: 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出错: %sn >" , dlerror());
 19      }
 20      printf(" @%s[%s]dlopen return handle = %#x.n >" , __FILE__, __FUNCTION__, handle);
 21  //  这个是
 22  //  中文
23  return  0 ;
 24  } 

1、匹配特定文字:

$ grep -nP “xE4xB8xADxE6x96x87|xD6xD0xCExC4>” ./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 “[xB0xA1-xF7xFE]+>” /home/fangss/c/dynamic_share_object_test/demo_exe.c

12:// 这个是中文

15:// 这个是中文

18: printf(“dlopen出错: %sn>”, 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 黟 黢 黩 黧 黥 黪 黯 鼢 鼬 鼯 鼹 鼷 鼽 鼾 齄 

原文:http://www.cnblogs.com/Fang3s/p/4414914.html

0 Comments

There are no comments yet

Leave a comment

Your email address will not be published.