Line endings conversion

Perl, command-line

Jump to: navigation, search

Преобразование символов перевода строки.

my $usage = "usage: $0 nix|mac|dos file ...\n";
die $usage unless $#ARGV > 0;
my $le = "\015\012";
for (shift) {
    /^nix$/ && do { $le = "\012"; last; };
    /^mac$/ && do { $le = "\015"; last; };
    /^dos$/ && do { last; };
    die $usage;
}
for my $filename (@ARGV) {
    open FILE, $filename or next;
    my @lines = <FILE>;
    close FILE;
    foreach (0..$#lines) {
        $lines[$_] =~ s/\012|\015\012?/$le/g;
    }
    open FILE, ">$filename" or next;
    print FILE @lines;
    close FILE;
}

Personal tools
ссылка