Perl script for finding directories with mtime


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl script for finding directories with mtime
# 1  
Old 08-21-2013
Code Perl script for finding directories with mtime

Need assistance in the perl script . Below script gives me the results of all the files and directories with mtime with no issues . But i wanted to have a file and specify all the directory locations and use that file as reference and get results . Any ideas are highly Appreciated .

Code:
#!/usr/bin/perl -w

use warnings;
use strict;
use Time::Local;
use File::Copy;

my @dirs = ("<path1>","<path2>","<path3>");
my %seen;
while (my $pwd = shift @dirs) {
    opendir(DIR,"$pwd") or die "Cannot open $pwd\n";
    my @files = readdir(DIR);
    closedir(DIR);
    foreach my $file (@files) {
        if (-d $file and ($file !~ /^\.\.$ARGV[0]$/) and !$seen{$file}) {
            $seen{$file} = 1;
            push @dirs, "$pwd/$file";
        }
        next if ($file !~ /\.$ARGV[0]$/i);
        my $mtime = (stat("$pwd/$file"))[9];
        print   "$pwd \t $file \t", scalar(localtime($mtime));
        print "\n";
    }
}

here what i tried as an example and implemented the same on the main script . But it works with only one path not multiple paths
Code:
#!/usr/bin/perl

use strict;
use warnings;
open (my $fh, '<', 'test.txt') || die "Could not open test.txt: $!\n";
my @test = grep { $_ !~ /^#/ } <$fh>;
print @test;

# 2  
Old 08-22-2013
Quote:
Code:
#!/usr/bin/perl

use strict;
use warnings;
open (my $fh, '<', 'test.txt') || die "Could not open test.txt: $!\n";
my @test = grep { $_ !~ /^#/ } <$fh>;
print @test;


You may need to cut down the trailing newline.

Code:
#!/usr/bin/perl

use strict;
use warnings;
my @test;
open (my $fh, '<', 'test.txt') || die "Could not open test.txt: $!\n";
while(<$fh>)
{
  chomp;
  push(@test,$_) if($_ !~ /^#/);
}
print @test;

# 3  
Old 08-22-2013
rajamadhavan

it doesnt work on the main script but your script works . How can i modify with yours in the main script .

Last edited by ajayram_arya; 08-22-2013 at 03:57 PM..
# 4  
Old 08-23-2013
@Ajay,
What issue do you see when you do

Code:
#!/usr/bin/perl -w

use warnings;
use strict;
use Time::Local;
use File::Copy;

my @dirs = ();
open (my $fh, '<', 'test.txt') || die "Could not open test.txt: $!\n";
while(<$fh>)
{
  chomp;
  push(@dirs,$_) if($_ !~ /^#/);
}

my %seen;
while (my $pwd = shift @dirs) {

### REST OF THE CODE ###


Last edited by rajamadhavan; 08-23-2013 at 01:42 AM..
# 5  
Old 08-23-2013
Thank you rajamadhavan . It works great now what i really missed was
Code:
()

in
Code:
my @dirs = ();

.Appreciate your help

---------- Post updated at 09:52 AM ---------- Previous update was at 09:50 AM ----------

Madhan once we run the script we get results . any inputs on how i can sort based on the data in perl . i know how to do in unix using
Code:
sort

but never done in perl
# 6  
Old 08-23-2013
Quote:
Originally Posted by ajayram_arya
... how i can sort based on the data in perl . i know how to do in unix using
Code:
sort

but never done in perl
It's similar in Perl.
Code:
sort @array

sorts the array @array.
The documentation page has a lot more information on this: sort - perldoc.perl.org
This User Gave Thanks to durden_tyler For This Post:
# 7  
Old 08-28-2013
durden_tyler: Using the above code, can you give me some inputs on sorting based on the colum.

Last edited by ajayram_arya; 08-28-2013 at 01:43 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: script to work with files with the same name in different directories

Hi All, I would like to use a Perl (not Bash) script to work with multiple files of the same name in different directories (all in the same parent directory). I tried to create a loop to do so, but it isn't working. My code so far: while (defined(my $file = glob("./*/filename.txt")) or... (1 Reply)
Discussion started by: elgo4
1 Replies

2. Shell Programming and Scripting

How to run perl script on multiple files of two directories?

Hi I have 100 files under file A labled 1.txt 2.txt.....100.txt(made up name) I have 1 files under file B labled name.txt How can i run the same perl script on 100 files and file name.txt I want to run perl script.pl A/1.txt B/name.txt perl script.pl A/2.txt B/name.txt ....... perl... (3 Replies)
Discussion started by: grace_shen
3 Replies

3. Shell Programming and Scripting

Finding directories with expression

Hi All, I need your help in finding pattern of directories. need to search for all pattern have "mypatern" from base directory folder. example ------- server1 - base directory 100 server1/ab_123456_1/mypattern 100 server1/ab_123456_2/mypattern 200 server1/ab_123457_1/mypattern... (13 Replies)
Discussion started by: lxdorney
13 Replies

4. Shell Programming and Scripting

Perl Script not working on all directories

Hi Folks, I have a script that I am using. The files are in Directory c:\files\change\options In that directory I have many other sub folders like R1 R2 R5 E4 etc... When I run this script in windows, It looks like its just changing the first folder R1 and not the rest. Can I get an... (6 Replies)
Discussion started by: richsark
6 Replies

5. UNIX and Linux Applications

Perl Script to read an excel file into an array and search in the UNIX directories

Hi, I want the Perl script with versions 5.8.2 and 5.8.5 starting with #!/usr/bin/perl The Perl program should read the excel file or text file line by line and taking into an array and search in the UNIX directories for reference file of .jsp or .js or .xsl with path .The Object names... (2 Replies)
Discussion started by: pasam
2 Replies

6. Shell Programming and Scripting

Run perl script on files in multiple directories

Hi, I want to run a Perl script on multiple files, with same name ("Data.txt") but in different directories (eg : 2010_06_09_A/Data.txt, 2010_06_09_B/Data.txt). I know how to run this perl script on files in the same directory like: for $i in *.txt do perl myscript.pl $i > $i.new... (8 Replies)
Discussion started by: ad23
8 Replies

7. Shell Programming and Scripting

Finding directory and sub-directories individual size in Perl

Hi, Can anyone redirect to an existing thread or provide some info on how to find the size of a directory and it's sub-directories using a single script ? I tried finding a similar thread but in vain. I'm a newbie and any help would be greatly appreciated. Thanks in advance. (3 Replies)
Discussion started by: ryder
3 Replies

8. UNIX for Dummies Questions & Answers

(find) mtime vs. (unix) mtime

Hi I've made some test with perl script to learn more about mtime... So, my question is : Why the mtime from findfind /usr/local/sbin -ctime -1 -mtime -1 \( -name "*.log" -o -name "*.gz" \) -print are not the same as mtime from unix/linux in ls -ltr or in stat() function in perl : stat -... (2 Replies)
Discussion started by: hiddenshadow
2 Replies

9. Shell Programming and Scripting

Script for parsing directories one level and finding directories older than n days

Hello all, Here's the deal...I have one directory with many subdirs and files. What I want to find out is who is keeping old files and directories...say files and dirs that they didn't use since a number of n days, only one level under the initial dir. Output to a file. A script for... (5 Replies)
Discussion started by: ejianu
5 Replies

10. Shell Programming and Scripting

perl package directories - what if the script is diff DIR to the one contain *.pm?

Hi there, say the package is in the ~/ and it's ~/packageFoo.pm I can use usePackage.pl in ~/ (~/usePackage.pl). Now, if I move it to ~/subDIR/usePackage.pl, the script won't work because it's not in the same DIR with packageFoo.pm How can i fix it? Thanks Gusla (1 Reply)
Discussion started by: gusla
1 Replies
Login or Register to Ask a Question