#! perl -slw use strict; use File::ReadBackwards; my $file = $ARGV[ 0 ]; tie *BW, 'File::ReadBackwards', $file; my $lastpos = -s( $file ); my $len = 0; while( ) { $len = length() +1; next unless length >1; last unless /SIL/; $lastpos = tell( BW ); } truncate $file, $lastpos + $len; close BW;