tools/dos2unix.pl (25 lines of code) (raw):

#! /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);