blob: c4851a76985b2e704934b1346c3c92f0a183028f [file] [log] [blame]
#! /usr/bin/perl
# dos2unix.pl by David Efflandt <efflandt@xnet.com>
# Modification of script from "Learning perl" p.353
# O'Reilly & Associates, Inc.
#
# Run after transfering text files from DOS to UNIX system.
# Strips carriage returns from DOS files for use UNIX.
# Transfers file permissions to new file (except suid bit).
#
# Usage:\tdos2unix.pl FILELIST
# where FILELIST = one or more filenames
#
# If you edit this file in DOS you can run it on itself by typing:
# perl dos2unix.pl dos2unix.pl
#
# Modify variables below for other search and replace functions.
$find = "\r"; # find this
$sub = ""; # substitute with this
$rm_bak = 1; # remove old file after conversion: 0 = no, 1 = yes
while (<>) {
if ($ARGV ne $oldargv) {
($dev,$ino,$mode,$nlink,$uid,$gid) = stat($ARGV);
$backup = $ARGV . '.bak';
rename($ARGV, $backup);
open (ARGVOUT, ">$ARGV");
chmod $mode, $ARGV;
select(ARGVOUT);
$oldargv = $ARGV;
}
s/$find/$sub/g;
s/\t/ /g;
s/
/\n/g;
} continue {
print;
if (eof) {
print STDOUT "Converted: $oldargv\n";
unlink $backup if $rm_bak;
}
}
select(STDOUT);