grep 中文字符的处理

sh/bash/dash/ksh/zsh等Shell脚本
回复
Messiya
帖子: 61
注册时间: 2009-12-02 15:49

grep 中文字符的处理

#1

帖子 Messiya » 2010-11-20 9:59

比如以下内容:
a.txt
-----------------------------
北京 010
上海 021
深圳 0755
广州 020
北京 100086
------------------------------

我想实现

cat a.txt|grep "北京" ,却没有得到期望的输出

cat a.txt|grep "\u5317" ,也没有得到期望的输出

如何才能实现呢
头像
mjp123
帖子: 702
注册时间: 2009-04-09 15:06

Re: grep 中文字符的处理

#2

帖子 mjp123 » 2010-11-20 10:10

命令没问题,你先cat a.txt看看,是不是编码的问题
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: grep 中文字符的处理

#3

帖子 xhy » 2010-11-20 10:43

文件编码用 utf8, 终端编码用utf8, locale也用utf8, 就不会有什么问题了
目前负债150多万
头像
qiang_liu8183
论坛版主
帖子: 10699
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

Re: grep 中文字符的处理

#4

帖子 qiang_liu8183 » 2010-11-20 11:22

编码问题
Screenshot-Terminal.png
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
头像
byZh
帖子: 198
注册时间: 2009-01-11 21:38

Re: grep 中文字符的处理

#5

帖子 byZh » 2010-11-30 16:58

中文要复制,不要输入
以缺德服人......
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: grep 中文字符的处理

#6

帖子 tusooa » 2010-11-30 21:26

代码: 全选

tlcr: 0 庚寅年十月廿五日 21:07 /tmp
● dog > test
-----------------------------
北京 010
上海 021
深圳 0755
广州 020
北京 100086
------------------------------
tlcr: 0 庚寅年十月廿五日 21:20 /tmp 
● grep 北京 test   
北京 010
北京 100086
tlcr: 0 庚寅年十月廿五日 21:21 /tmp 
● 

代码: 全选

] ls -ld //
回复