white fox
جمعه 20 شهریور 1383, 04:42 صبح
نمیدونم تا به حال به این مورد بر خوردید یا نه؟....
بعضی وقتا هست که متنی مینویسیم یا از اینترنت دونلود میکنیم چون در لینوکس نوشته شده متن در ویندوز همینطور سر هم نشون داده میشه و نمیشه متن رو خوند.
خوب این برنامه به راحتی مشکل رو حل میکنه.....با دستور زیر میتونید فایل رو برای ویندوز آماده کنید
line_edite.pl --unix filename.txt
این هم کد برنامه....لذتشو ببر :wink:
#!/usr/bin/perl
my $lineending = "\n";
my $type = shift @ARGV;
if( $type =~ /unix/ ) {
$lineending = "\012";
} elsif( $type =~ /dos/ ) {
$lineending = "\015\012";
} elsif( $type =~ /mac/ ) {
$lineending = "\015";
} else {
print "Usage: $0 --unix|--dos|--mac\n";
exit 1;
}
my @files = @ARGV;
for my $file ( @files ) {
open FILE, $file or next; # thanks turnstep
my @lines = <FILE>;
close FILE;
foreach my $i ( 0..$#lines ) {
$lines[$i] =~ s/(\012|\015\012?)/$lineending/g;
}
open FILE,">$file";
print FILE @lines;
close FILE;
}
بعضی وقتا هست که متنی مینویسیم یا از اینترنت دونلود میکنیم چون در لینوکس نوشته شده متن در ویندوز همینطور سر هم نشون داده میشه و نمیشه متن رو خوند.
خوب این برنامه به راحتی مشکل رو حل میکنه.....با دستور زیر میتونید فایل رو برای ویندوز آماده کنید
line_edite.pl --unix filename.txt
این هم کد برنامه....لذتشو ببر :wink:
#!/usr/bin/perl
my $lineending = "\n";
my $type = shift @ARGV;
if( $type =~ /unix/ ) {
$lineending = "\012";
} elsif( $type =~ /dos/ ) {
$lineending = "\015\012";
} elsif( $type =~ /mac/ ) {
$lineending = "\015";
} else {
print "Usage: $0 --unix|--dos|--mac\n";
exit 1;
}
my @files = @ARGV;
for my $file ( @files ) {
open FILE, $file or next; # thanks turnstep
my @lines = <FILE>;
close FILE;
foreach my $i ( 0..$#lines ) {
$lines[$i] =~ s/(\012|\015\012?)/$lineending/g;
}
open FILE,">$file";
print FILE @lines;
close FILE;
}