Herself’s Webtools

Webtools for Webmasters: Scripts, HowTos, Templates, Plugins, Widgets, Tips and Useful Information

Herself’s Webtools header image 1

PERL ^M stripper

February 15th, 2007 · No Comments

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.

strip.pl 


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”;
}

Tags: linux · osx · perl · tools

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.