標籤:
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_exe10 */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 FA 啊 阿 埃 挨 哎 唉 哀 皚 癌 藹 矮 艾 礙 愛 隘B 鞍 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱C 襖 傲 奧 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋D 靶 把 耙 壩 霸 罷 爸 白 柏 百 擺 佰 敗 拜 稗 斑E 班 搬 扳 般 頒 板 版 扮 拌 伴 瓣 半 辦 絆 邦 幫F 梆 榜 膀 綁 棒 磅 蚌 鎊 傍 謗 苞 胞 包 褒 剝
。。。
F7 0 1 2 3 4 5 6 7 8 9 A B C D E FA 鼇 鰭 鰨 鰥 鰩 鰳 鰾 鱈 鰻 鰵 鱅 鱖 鱔 鱒 鱧B 靼 鞅 韃 鞽 鞔 韉 鞫 鞣 鞲 韝 骱 骰 骷 鶻 骶 骺C 骼 髁 髀 髏 髂 髖 髕 髑 魅 魃 魘 魎 魈 魍 魑 饗D 饜 餮 饕 饔 髟 髡 髦 髯 髫 髻 髭 髹 鬈 鬏 鬢 鬟E 鬣 麽 麾 縻 麂 麇 麈 麋 麒 鏖 麝 麟 黛 黜 黝 黠F 黟 黢 黷 黧 黥 黲 黯 鼢 鼬 鼯 鼴 鼷 鼽 鼾 齇
shell grep正則匹配漢字