分页: 1 / 1

搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 9:58
人在井天
比如,一个目录下有几千个文件,一些文件含有"中国","美国","英国"这样三个字符串,把所有这些文件找出来,并把文件名输出到一个指定的文件中.

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 10:59
link_01
grep -E "中国|美国|英国" -R thepath -l > targetfile.txt

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 12:16
人在井天
link_01 写了:grep -E "中国|美国|英国" -R thepath -l > targetfile.txt
命令似可执行.但似乎:
一、你这个命令是分别搜索包含"中国","美国","英国"这样的字样,只要有其中的一个,就算是了.而我需要的是一个文件中包含这三个全部的.
二、好象只能搜英文字符串,搜中文则搜不到.

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 13:48
人在井天
找到的办法,好象都不支持中文字符串,这是个麻烦所在.

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 14:02
xinfengj8
不懂说的什么意思呀

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 16:03
link_01
是你自己说的不清楚,

代码: 全选

grep 英国 -l $(grep 美国 -l $(grep 中国 -l -R .))
很有意思

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 17:12
mswwjick
先关注一下,等LZ把问题讲清楚了,在来看看。

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 17:13
人在井天
link_01 写了:是你自己说的不清楚,

代码: 全选

grep 英国 -l $(grep 美国 -l $(grep 中国 -l -R .))
很有意思
这个并不是难点所在,难点在于,一些文件不支持搜索中文字符串.我的文件是从一个asp网站下载来的整个网站目录,根本就不支持这个.比如:

代码: 全选

$ file boot.asp
boot.asp: ISO-8859 HTML document text, with CRLF line terminators

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-22 20:54
naturalaw
人在井天 写了:
link_01 写了:是你自己说的不清楚,

代码: 全选

grep 英国 -l $(grep 美国 -l $(grep 中国 -l -R .))
很有意思
这个并不是难点所在,难点在于,一些文件不支持搜索中文字符串.我的文件是从一个asp网站下载来的整个网站目录,根本就不支持这个.比如:

代码: 全选

$ file boot.asp
boot.asp: ISO-8859 HTML document text, with CRLF line terminators
先转码?

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-23 9:51
link_01
要求可真高,你一下把问题说完,编码不对你就转啊,
结贴! :em20

Re: 搜索含有指定字符串的文件,并输出文件名

发表于 : 2011-09-23 10:36
人在井天
link_01 写了:要求可真高,你一下把问题说完,编码不对你就转啊,
结贴! :em20
一、最初没发现不支持中文的问题,哪能一下子就说完了?
二、编码不对,是可以转码,但我所需要的是批量修改文件,如果批量转码,文件的原有结构就被破坏掉了,很难还原的,改了也不能用了.
所以转码不现实.