[解决]请问有谁知道如何查找包含某个中文字符串的文本文件?

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
linser
帖子: 243
注册时间: 2005-09-28 9:03

[解决]请问有谁知道如何查找包含某个中文字符串的文本文件?

#1

帖子 linser » 2008-05-18 8:44

这些文本文件大约有几千个,分部在数百个子目录中,并且内码有GB2312,也有UTF8。

现在想把包含某个中文字符串的所有文件全部找出来,Linux下有什么软件可以做到?
上次由 linser 在 2008-05-18 11:43,总共编辑 1 次。
头像
laborer
帖子: 1016
注册时间: 2005-10-25 11:15
联系:

#2

帖子 laborer » 2008-05-18 9:21

代码: 全选

grep -r 字符串 *
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser
linser
帖子: 243
注册时间: 2005-09-28 9:03

#3

帖子 linser » 2008-05-18 9:40

laborer 写了:

代码: 全选

grep -r 字符串 *
不行的,grep貌似无法自动识别、转换文本文件的内码
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12

#4

帖子 solcomo » 2008-05-18 9:52

代码: 全选

grep -r 字符串 *
LC_ALL=zh_CN.GB2312  grep -r 字符串 *
:lol:
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
linser
帖子: 243
注册时间: 2005-09-28 9:03

#5

帖子 linser » 2008-05-18 11:41

写了个shell脚本,解决 8)

代码: 全选

#!/bin/bash

if [ -z $1 ]
then 
	echo usage: $0 search_string [code]
	exit 0
fi

if [ -z $2 ]
then 
	echo -n $1 | iconv -t=gbk -o /tmp/t_pat
elif [ "$2" != "utf8" ]
then
	echo -n $1 | iconv -t=$2 -o /tmp/t_pat
fi

if [ -e /tmp/t_pat ]
then
	grep -r -l -f /tmp/t_pat *
	rm /tmp/t_pat
else
	grep -r -l $1 *
fi


[/code]
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#6

帖子 eexpress » 2008-05-18 15:30

复杂了吧

cat file|enconv|grep -o xxxxstring
● 鸣学
cdz
帖子: 1
注册时间: 2008-12-30 23:08

Re: [解决]请问有谁知道如何查找包含某个中文字符串的文本文件?

#7

帖子 cdz » 2008-12-31 12:00

脚本如何使用?

我比较新,看不太懂。
回复