Chinaunix

标题: 如何只抽取到一个文件中的中文信息 [打印本页]

作者: daming31    时间: 2013-01-13 00:43
标题: 如何只抽取到一个文件中的中文信息
aa.rar (604 Bytes, 下载次数: 11)

附件压缩包,解开后是一个aa.frp的windows中的报表文件。
现在想通过shell只抽取该文件中的中文信息。
请教各位兄弟姐妹们,有什么好办法?

因为我知道用sed可以只抽取数字,或者只抽取英文,但现在想要弄中文,就不知道该怎么办了?
作者: mcshell    时间: 2013-01-13 00:53
LZ转成TXT吧。。frp文件还要下软件
作者: zavakid    时间: 2013-01-13 09:55
是不是就是一个 tokenizer ?识别出中文的词素
作者: daming31    时间: 2013-01-13 10:12
回复 3# zavakid

tokenizer是个啥东东呀?没有用过。刚google了一把,好像是个什么java类?


   
作者: daming31    时间: 2013-01-13 10:14
回复 2# mcshell

我已经直接把.frp改成.txt了,但用cat读的时候,有用的信息还是夹杂在一堆乱码中。唉
倒是用strings 文件名,可以读出非中文的正常信息。
这位兄弟说的把frp转成txt,可以实现没有乱码的转吗?我现在有近五十万个这样的文件,如果要转也是想办法批量转。

作者: mcshell    时间: 2013-01-13 11:24
回复 6# daming31


    你误解我的意思的。。你首先要明白 不管的什么sed还是cat首先要读出文本。
内容都读不出来怎么处理呢。如果你处理好了。可以利用[\x{4e00}-\x{9fa5}]来匹配到中文。注:每个语言的范围可能表示不一样。但是思路都一样。
作者: 惟吾无为    时间: 2013-01-13 18:52
本帖最后由 惟吾无为 于 2013-01-13 19:12 编辑

如果中文是原样保存的话,先确定编码,然后直接grep -o。
gbk编码2字节。大致范围是首字节大于0x80。次字节不限。
utf8中文至少是3字节。
具体的编码范围可以看维基百科。

作者: seesea2517    时间: 2013-01-14 11:03
既然你能处理英文和数字,不如把英文和数字删除掉,这样不就剩下中文了~
作者: daming31    时间: 2013-01-15 00:27
回复 9# seesea2517

因为这个.frp的文件,如果直接cat的话,除了英文、数字、中文,还有乱码,所以,没有办法用排除法。
已经头痛好几天了。


   
作者: Shell_HAT    时间: 2013-01-15 08:54
回复 10# daming31


    strings命令可以吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2