#!/usr/bin/perl # Correct "From " lines that aren't preceded by two newlines. $pat = "^From .* (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) .* [0-9][0-9]:[0-9][0-9]"; foreach $file (@ARGV) { next unless -f $file; $len = 0; $new = "$file.new.$$"; open (F, "$file") || die "$file: !$\n"; open (N, "> $new") || die "$new: !$\n"; while () { chomp; print N "\n" if $len > 0 && /$pat/o; print N "$_\n"; $len = length ($_); } close (F); close (N); rename ($new, $file) || die "rename $new $file: $!\n"; } exit (0);