http://www.perlmonks.org?node_id=1069534


in reply to Replace a string after a word

G'day nithins,

A little more information regarding the file and the string to be replaced would have been useful. For instance, how big is the file? how many replacements are possible in the file? if more than one, how many replacements are possible per record? Also, are there any constraints such as time, memory or disk space?

Bearing in mind the unknowns, the following (pm_1069470.pl) may be suitable for your needs:

#!/usr/bin/env perl use strict; use warnings; use autodie; use Tie::File; tie my @records, 'Tie::File', 'pm_1069470.txt'; s/user={hhhfj}jshdfjhdfjh\\=/user=newvalue/ for @records; untie @records;

Sample run:

$ cat pm_1069470.txt blah blah blah user={hhhfj}jshdfjhdfjh\= whatever user=something else user={hhhfj}jshdfjhdfjh\= other data $ pm_1069470.pl $ cat pm_1069470.txt blah blah blah user=newvalue whatever user=something else user=newvalue other data

-- Ken