#!/usr/bin/perl -w use strict; my ($search, $replace, $fn, @data, $mod); my $modified = 0; die "usage: sar search-text replace-text files..." unless $search = shift; die "usage: sar search-text replace-text files..." unless $replace = shift; foreach $fn (@ARGV) { @data = (); $mod = 0; open(F, $fn) or die "$fn: $!\n"; while () { if ($mod) { s/\b$search\b/$replace/go; } elsif (/\b$search\b/o) { $mod = 1; s/\b$search\b/$replace/go; } push(@data, $_); } close(F); if ($mod) { open(F, ">$fn") or die "$fn: $!\n"; print F @data; close(F); $modified++; } } printf "%d files modified.\n", $modified; exit(0);