Script/Perl
19. File
삽질의 달인
2020. 1. 21. 11:28
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;
}
|