This creates a temporary copy of the data file so you have to make sure that enough space is on disk. Or preferably check the return values of the print statements for errors.#!/usr/bin/perl -w use strict; use warnings; my $filename = shift; open my $fh,'<',$filename or die "No input file\n"; open my $ofh, '>', "$filename.new" or die "Can't open output file\n"; my $previousline= undef; while (<$fh>) { chomp; s/(?<=[^n])n|n(?=[^n])/^/ig; #borrowed from jwkrahn if (defined $previousline) { ($previousline=~/[^n]$/i) and (s/^n/^/i); (/^[^n]/i) and ($previousline=~s/n$/^/i); print $ofh $previousline,"\n"; } $previousline= $_; } print $ofh $previousline,"\n" if (defined $previousline); close $fh; close $ofh; rename "$filename.new",$filename;
In reply to Re: replace fist and last occurrences of N
by jethro
in thread replace fist and last occurrences of N
by ini2005
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |