in reply to replace fist and last occurrences of N
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;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: replace fist and last occurrences of N
by GrandFather (Saint) on Jul 13, 2008 at 00:34 UTC | |
by jethro (Monsignor) on Jul 13, 2008 at 01:16 UTC | |
by GrandFather (Saint) on Jul 13, 2008 at 02:24 UTC | |
by jethro (Monsignor) on Jul 13, 2008 at 02:54 UTC |