Sponsored Content
Full Discussion: Arranging files
Top Forums Shell Programming and Scripting Arranging files Post 302203305 by Vivek788 on Saturday 7th of June 2008 10:18:46 PM
Old 06-07-2008
Well i converted it to qw and made lots of modifications and ended up with 2 versions of working code(late at night).One using find and copy modules,other using directory handler.I

Quote:
#!/usr/bin/perl -w
use File::Find;
use File::Copy;
%ftypes=qw(perl pl bash sh sed ed awk aw sh sh); #Put extensions associated with each type in hash
find(\&call,"."); #Call subroutine when file found

sub call
{
$var=$File::Find::name ;
if(-f $var) #Read only files
{
open(fh,$var) or die "Couldn't open file";
$line=<fh>;
if($line=~/^\#!.*?(\w+)\s+/){$dir=$1;$ext=$ftypes{$dir};} #Identify type from she-bang and extract extension from hash
if($var=~/(\w+\.)\w*/){$new=$1.$ext;} #In case file already contains extension,extract filename
else{$new=$var.".".$ext;}
mkdir $dir unless( -e $dir); #Make directory by type name
$newfile="./".$dir."/".$new;
$newfile=substr($newfile,2);
rename "$var", "./"."$new"; #Add proper extension by renaming
copy("$new","$newfile") or die "$!"; #Copy to created directory
close(fh);
}
}
And

Quote:
#!/usr/bin/perl
%ftypes=qw(perl pl bash sh sed ed awk aw sh sh); #Put extensions associated with type in hash
opendir dirhndl,"." or die "Cannot open directory:$!";


while($file=readdir(dirhndl))
{
next if $file =~ /^\.\.?$/;
open fh,$file;
$line=<fh>;
if($line=~/^\#!.*?(\w+)\s+/){$dir=$1;$ext=$ftypes{$dir};}#Identify type from she-bang and extract it
if($file=~/(\w+\.)\w*/){$new=$1.$ext;} #In case file already contains extension,extract filename
else{$new=$file.".".$ext;}
mkdir $dir unless( -e $dir); #Make directory by type name
$newfile="./".$dir."/".$new;
$newfile=substr($newfile,2);
rename "$file", "$newfile"; #Add proper extension and move to folder
close(fh);
}
closedir(dirhndl);
If there are any suggestions or bugs,please do tell,it would really help as I am learning Perl.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with arranging data file

Dears, I have the below data, sss-aaaaaa 111211 222222 33333 22222 1163111 sss-vvvvvv 111311 224522 335633 24322 111511 sss-cccccc 111221 224522 333333 24322 111511 sss-dddddd 111211 222222 33333 22345222 113111 I want to make them like ... (7 Replies)
Discussion started by: yahyaaa
7 Replies

2. UNIX for Dummies Questions & Answers

Re-arranging lines of text... help?

Hello, I am new to Linux, and I am learning slowly but for surely. I am trying to currently figure out how to go about re-arranging lines of text of a *.txt file... Like for example: Say pool.txt has 20 lines of text, and the last 5 lines of text I want to move to the top of the *.txt file... (2 Replies)
Discussion started by: shorte85
2 Replies

3. Shell Programming and Scripting

need help in arranging the alias

Hello Guys, I have around 100 hosts setup as alias in my profile for easy sshing. alias ada='ssh -Y username@da.domain.com' alias ast='ssh -Y username@terix.domain.com' alias bb1='ssh -X username@ggserver.ns.domain.com' . . . . I now would like to use sshmenu software in which... (4 Replies)
Discussion started by: upengan78
4 Replies

4. Shell Programming and Scripting

arranging columns with AWK

Hi there! Can this be done with AWK? Several text files (file1, file2, etc) with different number of lines. Need to append each file to a Reference File (ReFile), and match each line of file1, file2 etc to the closest value in ReFile. Empty cells must be filled with NA, or 0. The number of lines... (2 Replies)
Discussion started by: sramirez
2 Replies

5. UNIX for Dummies Questions & Answers

Arranging data

I have thousand lines of data...: A 1 B 2 C 3 D 4 E 5 A 21 B 22 C 23 D 24 E 25 A 31 B 32 C 33 D 34 E 35 ........... ON AND AND ON (3 Replies)
Discussion started by: bobo
3 Replies

6. Shell Programming and Scripting

Arranging files in order of files_digits

Hi all, I have input files in some directory as: $ ls -ltr -rw-r--r-- 1 emily us_cms 101614219 Oct 8 15:47 vgtree_197_0_7pV.root -rw-r--r-- 1 emily us_cms 101348458 Oct 8 16:43 vgtree_518_0_LHB.root -rw-r--r-- 1 emily us_cms 101386298 Oct 8 16:50 vgtree_291_0_cWd.root -rw-r--r-- 1... (11 Replies)
Discussion started by: emily
11 Replies

7. Shell Programming and Scripting

Need Help in arranging the output

Hello All, Please find attached input and output files. I want to write a shell script to achieve this. I tried using awk but not getting how to do this as I am new to shell programming. Thanks (4 Replies)
Discussion started by: Sudeep Bhattad
4 Replies

8. UNIX for Dummies Questions & Answers

Arranging columns in a line

Hi, Please give a solution... Current File 200101701 A 5 B 283 D 222 200085506 A 5 B 6 C 304 200081406 A 5 200101784 D 1111Desired Output 200101701 A 0005 B 0283 * * D 222 ... (4 Replies)
Discussion started by: satyar
4 Replies

9. Shell Programming and Scripting

Need help in arranging data

I have a file with user activity and need to display only the start and end timestamp of the activity. I don't know how can we write an logic for this please help me in a bettr way to work on it User Activity_log ----------------------------------- ... (5 Replies)
Discussion started by: lazydev
5 Replies

10. UNIX for Beginners Questions & Answers

Help arranging text

By using this code how can we get the stars in inverted positions? str="*" for i in 1 2 3 4 5 do echo "$str" str="$str *" done The output should be like this * * * * * * * * * * * * * * * Please use CODE tags as required by forum rules!... (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies
install(1B)					     SunOS/BSD Compatibility Package Commands					       install(1B)

NAME
install - install files SYNOPSIS
/usr/ucb/install [-cs] [-g group] [-m mode] [-o owner] filename1 filename2 /usr/ucb/install [-cs] [-g group] [-m mode] [-o owner] filename... directory /usr/ucb/install -d [-g group] [-m mode] [-o owner] directory DESCRIPTION
install is used within makefiles to copy new versions of files into a destination directory and to create the destination directory itself. The first two forms are similar to the cp(1) command with the addition that executable files can be stripped during the copy and the owner, group, and mode of the installed file(s) can be given. The third form can be used to create a destination directory with the required owner, group and permissions. Note: install uses no special privileges to copy files from one place to another. The implications of this are: o You must have permission to read the files to be installed. o You must have permission to copy into the destination file or directory. o You must have permission to change the modes on the final copy of the file if you want to use the -m option to change modes. o You must be superuser if you want to specify the ownership of the installed file with -o. If you are not the super-user, or if -o is not in effect, the installed file will be owned by you, regardless of who owns the original. OPTIONS
-c Copy files. In fact install always copies files, but the -c option is retained for backwards compatibility with old shell scripts that might otherwise break. -d Create a directory. Missing parent directories are created as required as in mkdir -p. If the directory already exists, the owner, group and mode will be set to the values given on the command line. -s Strip executable files as they are copied. -g group Set the group ownership of the installed file or directory. (staff by default.) -m mode Set the mode for the installed file or directory. (0755 by default.) -o owner If run as root, set the ownership of the installed file to the user-ID of owner. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
chgrp(1), chmod(1), chown(1), cp(1), mkdir(1), strip(1), install(1M), attributes(5) SunOS 5.10 14 Sep 1992 install(1B)
All times are GMT -4. The time now is 02:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy