I had to restore the website from a Windows back up a few months ago. Yuch! I couldn’t find any ^M strippers that did more than one file at a time (there are over 2,500 files here !!) so I wrote one.^M Stripper
Updated 10/0312/01
A tool for stripping those Windows line control characters from your files.
Copy the original files to a temporary directory.
At a command prompt type:./strip.pl directoryname
and it will strip the ^M’s from those files.
Source Code
#!/usr/bin/perl
#This program removes the Window’s ^M line control
#characters from all the files in a subdirectory.
#type ./strip.pl at the command line
#followed by the name of the directory with the files to be fixed
#./strip.pl directoryname
#no warranties are given or implied.
#use at your own risk
#get sub-directory in which files to be fixed are located
#to use this program make sure it is executable
#chmod 755 strip.pl
#to run this program
#./strip.pl directoryname
#directory name being the name of the directory with your files that
#need to be fixed.
$directory = @ARGV[0];chomp($directory);
#switch to sub-directory of files to scan and change
#read current working directory and store file names in@flist
opendir( INDIR, “./$directory”) || die (”$0: Can not read directory”);
while( $fname = readdir INDIR){
next if $fname =~ /^\./;
#not hidden
next if $fname =~ /^\.\.?$/;
#it’s pwd or parent
next if $fname =~ “strip.pl”;
#not me
push @flist, $fname;
}
closedir(INDIR);
system (”cd $directory”);
foreach $fn (@flist) {
open( IN, “$directory/$fn”) || die (”\n can not read $fn \n”);
open( OUT, “>temp”) || die (”\n can not write $fn \n”);
$flag = 0;
$lineNo = 0;
while( ){
$lineNo++;
$line = $_;
$line =~ s/\r//g;
print OUT “$line”;
}
close(IN);
close(OUT);
rename (temp, $fn) || die “couldn’t rename temp to $fn.\n”;
}
0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
You must log in to post a comment.