본문 바로가기

Script/Perl

19. File

 
Mode
 
파일의 모드는 아래와 같다.
 
Entities Definition
< or r Read Only Access
> or w Creates, Writes, and Truncates
>> or a Writes, Appends, and Creates
+< or r+ Reads and Writes
+> or w+ Reads, Writes, Creates, and Truncates
+>> or a+
Reads, Writes, Appends, and Creates
 
 
 
Open
 
use strict;
use warnings;
 
open(DATA, "<versionInfo1.txt" ) or die "Couldn't open file file.txt, $!";
 
while(<DATA> ){
   print "$_" ;
}
 
close(DATA);
 
 
 
Renaming a file
 
rename ("/usr/test/file1.txt" , "/usr/test/file2.txt" );
 
 
 
Deleting an existing file
 
unlink ("/usr/test/file1.txt" );
 
 
 
CreateRecursiveDir
 
sub recursiveMkDir {
       my $path    = shift;
       my $perms = shift;
 
       my ($parent) = $path =~ /(.*)\//;
 
       if ($parent) {
             recursiveMkDir( $parent, $perms );
             mkdir( $path, $perms ) or return 0;
             return 1;
      }
       else {    #at base of path
             mkdir( $path, $perms ) or return 0;
             return 1;
      }
}
 
 
 
CreateFile
 
my ( $ file, $ dir , $ ext ) = fileparse ( $ filename );
if ( recursiveMkDir ( $ dir , 0777 ) ) {
    die "Unable to create $dir\n";
}
 
unless ( -e $ filename ) {
   open my $fc, ">" , $filename;
   close $fc ;
}
 
 
 
Copy
 
use File::Copy;
 
copy( $filenameSrc , $filenameDst ) or die "Copy failed: $!";
 
 
 
Diff
 
my $fname1 = ...;
my $fname2 = ...;
my %a_links ;
 
#Tokenizing file
open my $afile, "<", $fname1 or die "Couldn't open $fname1: $!" ;
 
while ( my $link = <$afile> ) {
    chomp $link ;
    $a_links { $ link } = undef ;
}
 
close $afile ;
 
#Comparing between two files
open my $bfile, "<", $fname2 or die "Couldn't open $fname2: $!" ;
my $i = 0;
while ( my $link = <$bfile> ) {
    chomp $link ;
    next if exists $a_links{ $link };
    print $link ;
}
 
close $bfile ;
 
 
 
Compare
 
use File::Compare;
 
if ( compare ( $ fname1 , $fname2 ) == 0 ) {
     print "They're equal\n";
     return 1;
} else {
     return 0;
}
 
 
 

'Script > Perl' 카테고리의 다른 글

21. Directory  (0) 2020.01.21
20. System  (0) 2020.01.21
18. Package  (0) 2020.01.21
17. Module  (0) 2020.01.21
15. Regular Expression 1 - 기본  (0) 2020.01.21