Trong series về lập trình Perl, mình giới thiệu bài viết hướng dẫn sử dụng Perl 5 để thao tác với text file (Mở, đọc, sửa và xóa file)
1. Thao tác với file
Sử dụng function open trong Perl để mở file
– Syntax: open(filehandle, mode, filename)
– Mode:
mode | operand |
---|---|
read | < |
write | > |
append | >> |
1.1. Mở một file text
Đoạn code để mở file text có tên là sample.txt
use strict; use warnings; my $filename = 'sample.txt'; my $fh; if (open($fh, '<', $filename)) { print "File ${filename} opened successfully!\n"; } else { warn "Could not open file '${filename}', Error: $!\n"; } close($fh);
1.2. Mở file text và đọc nội dung một file text
Đoạn code mở file sample.txt và đọc nội dung theo từng line và in ra màn hình
my $filename = 'sample.txt'; my $fh; if (open($fh, '<', $filename)) { while (my $row = <$fh>) { chomp $row; print "$row\n"; } } else { warn "Could not open file '${filename}', Error: $!\n"; } close($fh);
1.3. Tạo và ghi nội dung vào một file text
Ở trường hợp này
- Nếu file chưa tồn tại => Tạo file text có nội dung là ‘We are vinasupport.com’
- Nếu file đã tồn tại => Viêt đè nội dung ‘We are vinasupport.com’ lên file cũ.
my $filename = 'sample.txt'; my $fh; if (open($fh, '>', $filename)) { print $fh 'we are vinasupport.com'; } else { warn "Could not create file '${filename}', Error: $!\n"; } close($fh);
1.4. Tạo hoặc chèn nội dung vào một file text đã tồn tại
Ở trường hợp này
- Nếu file chưa tồn tại => Tạo file text có nội dung là ‘We are vinasupport.com’
- Nếu file đã tồn tại => Thêm đoạn text ‘We are vinasupport.com’ ở bên dưới nội dung file cũ.
my $filename = 'sample.txt'; my $fh; if (open($fh, '>>', $filename)) { print $fh "we are vinasupport.com\n"; } else { warn "Could not create file '${filename}', Error: $!\n"; } close($fh);
1.5. Sao chép hoặc đổi tên file
– Sao chép (Copy) file
use File::Copy qw(copy); my $file_from = 'sample.txt'; my $file_to = 'new_sample.txt'; copy $file_from, $file_to;
– Đổi tên (Rename) file
use File::Copy qw(move); my $old_file = 'sample.txt'; my $new_file = 'new_sample.txt'; move $old_file, $new_file;
Hoặc đơn giản sử dụng hàm rename built-in sẵn của Perl
rename $old_file, $new_file;
1.6. Xóa file
Sử dụng hàm unlink built-in sẵn của Perl
my $file = 'sample.txt'; unlink $file or die "Could not remove file '${file}'. Error: $!";
2. Thao tác với thư mục
2.1. Tạo thư mục
Sử dụng function mkdir (directory, mask)
my $newDir = 'myFolder'; mkdir($newDir, 0755) or die "Could not create the directory '${newDir}'. Error: $!";
2.2. Tạo thư mục với thư mục con trong nó
Ở trường hợp 2.1 ta chỉ có thể tạo được 1 thư mục, muốn tạo thư mục với thư mục con ở bên trong, tham khảo đoạn code Perl sau
use File::Path 'mkpath'; my $newPath = 'vinasupport.com/Linux/Ubuntu'; my $verbose = 1; my $mode = 0755; mkpath($newPath, $verbose, $mode) or die "Could not create the directory '${newPath}'. Error: $!";
Kết quả ta được cấu trúc đường dẫn như sau:
2.3. Xóa thư mục, thư mục con và file trong nó
use File::Path 'rmtree'; my $path = 'vinasupport.com'; my $verbose = 1; my $safe = 1; rmtree ($path, $verbose, $safe ) or die "Could not delete the directory '${path}'. Error: $!";
2.4. Liệt kê file trong thư mục
Đoạn code sau sẽ hiển thị danh sách file trong 1 thư mục sử dụng function opendir của Perl
my $dir = '/tmp'; opendir(DIR, $dir) or die $!; while (my $file = readdir(DIR)) { # Use a regular expression to ignore files beginning with a period next if ($file =~ m/^\./); print "$file\n"; } closedir(DIR);
Cám ơn các bạn đã theo dõi bài viết
Nguồn vinasupport.com
thanh menu trang của bạn làm khá thất bại nhé . Không nhìn thấy ghi chữ gì hết. Bạn nên để chữ màu đen hoặc nâu thì mình thấy ok nhất .
Bạn có thể nói rõ hơn được không?