Visit Our UNIX and Linux User Community


Print the name of files in the directory using Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print the name of files in the directory using Perl
# 1  
Old 03-13-2012
Print the name of files in the directory using Perl

Hi All,
I am stuck with a problem and i want your help, what i want to do is

I have a directory name dircome
and there are 6 files present in this directory, the name of the files are d1,d2,d3,d4,d5,d6.

The Perl script print the files name, means the output should be
d1
d2
d3
d4
d5
d6
# 2  
Old 03-13-2012
Try like...
Code:
ls -l *.*| awk -F ' ' '{print $9}'

# 3  
Old 03-13-2012
Use the function system.
Code:
#! perl
system("ls <path to directory>");

Thanks,
Kalai

Last edited by pludi; 03-13-2012 at 07:50 AM..
# 4  
Old 03-13-2012
Above command not working.. Please help me.
# 5  
Old 03-13-2012
perl

Hi,
Try this one,
Code:
#! /usr/bin/perl
use strict;
my $mDir="/home/cf/ranga1";
opendir(DIR1,"$mDir") or die "unable to open dir $mDir";
my @mRes=grep{/^[^.]/} readdir(DIR1);
closedir(DIR1);
sort(@mRes);
print "@mRes\n";

Cheers,
Ranga:-)

Last edited by rangarasan; 03-14-2012 at 05:18 AM..
# 6  
Old 03-13-2012
A one-liner using only Perl (unlike the others presented so far):
Code:
perl -e 'print join "\n",grep { -f } <*>'

Explanation:
  • <*> is a glob that expands to all entries in the current directory
  • grep is a function that works pretty much like the shell utility. It expects a statement block returning true or false values on the parameters.
  • The -f is a shorthand for testing if a parameter (here it's the anonymous automatic variable $_) is a regular file or not
  • And finally it all gets nicely formatted by join and printed
# 7  
Old 03-13-2012
If you are running a Perl script there is no need to spawn a shell to do this, Perl has a number of ways (as always) of doing this, you can use a glob to get the values
Code:
print join("\n",glob("$dir_name/*")),"\n";

Or you could open the directory and read the contents.
Code:
opendir(my $directory,"$dir_name"); 
print join("\n", grep {! /^\./} sort(readdir $directory));
closedir($directory);

The glob is obviously easier to use, however if you need to do more complex processing than just printing the filenames the opendir, readdir , closedir approach gives you more flexibility.

Previous Thread | Next Thread
Test Your Knowledge in Computers #103
Difficulty: Easy
In 2019, Linux was the most popular Unix variant on the market.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print number of lines for files in directory, also print number of unique lines

I have a directory of files, I can show the number of lines in each file and order them from lowest to highest with: wc -l *|sort 15263 Image.txt 16401 reference.txt 40459 richtexteditor.txt How can I also print the number of unique lines in each file? 15263 1401 Image.txt 16401... (15 Replies)
Discussion started by: spacegoose
15 Replies

2. UNIX for Beginners Questions & Answers

Search strings from a file in files in a directory recursively; then print the string with a status

Hi All, I hope somebody would be able to help me. I would need to search a string coming from a file, example file.txt: dog cat goat horse fish For every string, I would need to know if there are any files inside a directory(recursively) that contains the string regardless of case.... (9 Replies)
Discussion started by: kokoro
9 Replies

3. Shell Programming and Scripting

Directory containing files,Print names of the files in the directory that are exactly same content.

Given a directory containing say a few thousand files, please output a list of all the names of the files in the directory that are exactly the same, i.e. have the same contents. func(a_directory_name) output -> {“matches”: , ... ]} e.g. func(“/home/my/files”) where the directory... (7 Replies)
Discussion started by: anuragpgtgerman
7 Replies

4. Shell Programming and Scripting

Help needed to print the not updated files in the Directory

Hi All, I have written one program to print the files which are not updated in the specified directory in .Dat file. If I am executing the same command in the command prompt its working fine but if I am executing in shell script it's not working fine. Please correct if any thing wrong in the... (3 Replies)
Discussion started by: bbc17484
3 Replies

5. Shell Programming and Scripting

Delete files in directory using perl

Hello All I am implementing my task in Perl and i found an issue. What i want to do is to remove files from the directory which were made 20 days back using Perl script (9 Replies)
Discussion started by: parthmittal2007
9 Replies

6. Shell Programming and Scripting

Print the current directory using perl

Hi I have this code to print the current directory using Perl use Cwd qw(abs_path); my $path = abs_path($0); print "$path\n"; But it is displaying my perl source code file along with the directory. like this C:\Perl\duration.pl But I want it only to display this... (1 Reply)
Discussion started by: srijith
1 Replies

7. Shell Programming and Scripting

perl with two files and print

Suppose u have two files one file >hi|23433|sp|he is RAJ<space>>hi|23333|df|He is HUMAN<space>>hi|222|gi|howru|just WOWHEISWONDERFUL >hi|25559|gs|heisANUJ<space>>hi|2232|sp|he is fool SKSIKSIKSLKSSLLS Another file HUMAN so output wil be ...if the list contain HUMAN only take it... (1 Reply)
Discussion started by: cdfd123
1 Replies

8. Shell Programming and Scripting

Remove files from a directory using perl

Hi all, I have the following question. Considder that in the directory /code the script remove.pl exists. What i want is to run this script and remove some files that exist in the directory /dir/tmp. I use the below code but it does not work. system("cd /dir/code"); system("rm FileName"); ... (6 Replies)
Discussion started by: chriss_58
6 Replies

9. Shell Programming and Scripting

print all files of a directory

At the moment I do not know anything UNIX script :rolleyes: but i need to make script that prints the content of the archives (of text) that are deposited in a directory and Later erases these archives, leaving the directory emptiness It would be like repository for print please... (9 Replies)
Discussion started by: monica
9 Replies

10. Shell Programming and Scripting

PERL: print if files present

FOR: Windows NT 4 I want perl to read a directory. there is suposed to be two files in the folder ( file1.ini and file2.ini ) and i want perl to print "Files present" or "Files NOT present" to a text document ( report.txt ) how do i do it.? (2 Replies)
Discussion started by: perleo
2 Replies

Featured Tech Videos