分页: 1 / 1

shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-10 15:09
zhangxiaofir
想读取一个目录/log/里的所有符合文件名字规则的文件 对其中的文件进行正则抓取 文件名为log log1 log2 等等 然后用shell 或者python该怎么写?

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-10 15:40
lilydjwg

代码: 全选

grep regex log/log*

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-10 17:02
zhangxiaofir
lilydjwg 写了:

代码: 全选

grep regex log/log*
- - 我貌似又没描述清楚
嗯 嗯 下面是perl版本的

代码: 全选

#!/usr/bin/perl
opendir(DIR,"/log");
my @files=readdir DIR;
foreach my $file (@files) {
 if($file =~ /^log/){
 open(FILE,"</log/$file");
 while(my $line=<FILE>){
  if($line =~/2012/ )#接下来是对行里有2012的文本进行操作
想知道如果用python 或者shell该怎么写

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-10 17:54
lilydjwg
zhangxiaofir 写了:
lilydjwg 写了:

代码: 全选

grep regex log/log*
- - 我貌似又没描述清楚
嗯 嗯 下面是perl版本的

代码: 全选

#!/usr/bin/perl
opendir(DIR,"/log");
my @files=readdir DIR;
foreach my $file (@files) {
 if($file =~ /^log/){
 open(FILE,"</log/$file");
 while(my $line=<FILE>){
  if($line =~/2012/ )#接下来是对行里有2012的文本进行操作
想知道如果用python 或者shell该怎么写
不知道你要「进行操作」是干什么。找到文件的话是这样子:

代码: 全选

grep -l 2012 /log/log*

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-10 18:10
zhangxiaofir
lilydjwg 写了:
zhangxiaofir 写了:
lilydjwg 写了:

代码: 全选

grep regex log/log*
- - 我貌似又没描述清楚
嗯 嗯 下面是perl版本的

代码: 全选

#!/usr/bin/perl
opendir(DIR,"/log");
my @files=readdir DIR;
foreach my $file (@files) {
 if($file =~ /^log/){
 open(FILE,"</log/$file");
 while(my $line=<FILE>){
  if($line =~/2012/ )#接下来是对行里有2012的文本进行操作
想知道如果用python 或者shell该怎么写
不知道你要「进行操作」是干什么。找到文件的话是这样子:

代码: 全选

grep -l 2012 /log/log*
:em06 貌似我把简单问题复杂化了

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-11 16:23
niejieqiang
perl -e 'print glob "/log/log*"'

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-12 1:30
q_yangguangyouzi
find /log -regextype egrep -iregex .*log[0-9]* -print

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-16 17:28
Methuselar
Python无人??

代码: 全选

python -c 'import os; print "\n".join("\n".join(f for f in l[2] if f.startswith("log") ) for l in os.walk("."));'
当然要上正则,py就有点疼了...

Re: shell 和python 读取一个目录里的文件问题

发表于 : 2012-10-16 17:41
lilydjwg
Methuselar 写了:Python无人??

代码: 全选

python -c 'import os; print "\n".join("\n".join(f for f in l[2] if f.startswith("log") ) for l in os.walk("."));'
当然要上正则,py就有点疼了...
杀鸡焉用牛刀。