Hi Ruud, Thanks for the input. I will take care of your inputs next time I post the message.
The below solution did not work for me . My file runs almost to 1GB . All I have the string mentioned below. I even tried the following option perl -pi.bak -0777 -e 's/ab=test1, db=test2,dc=test3/ab=chk1,bc=chk2/gi' filename. But it did not work. I also tried using -m. It failed. Please let me know if there any other solution for this. Thanks, Preethi On 6/22/06, Dr.Ruud <[EMAIL PROTECTED]> wrote:
Preethi schreef: Never put "Urgent" in the Subject. Never address "us" as Experts. Just explain your problem. Subject: search and replace on broken lines > I have wired problem , I have search and replace string in very huge > text file . The problem with the string is broken in the differenet > line. > > I'm having a string 'ab=test1, db=test2,dc=test3' and I want to > replace this with 'ab=chk1,bc=chk2'. > This string in the file is present in various fasion like > <File> > .........................ab=tes > t1, db=test2,dc=test3'.... > ............................, ab= > test1,db=test2,dc=test3' . > .................................. What is "very huge"? Multiple GB? If the file is "only" a few MB, consider slurping it in: perl -i.bak -wpe ' { local $/; s/a\n? b\n? =\n? t\n? e\n? s\n? t\n? 1\n? ,\n? \ \n? d\n? b\n? =\n? t\n? e\n? s\n? t\n? 2\n? ,\n? d\n? c\n? =\n? t\n? e\n? s\n? t\n? 3\n? /ab=chk1,bc=chk2/xgi } ' filename (untested) The "local $/" sets the input record separator to undef. See perlvar. The inserted \n? are optional newlines. Your sample shows a ", db" and a ",db" so you'll need to adjust the regular expression above. Handy: perl -le ' $s = q{ab=test1, db=test2,dc=test3} ; $r = join( q{\n}, split( q{}, $s ), undef) ; print qr/$r/ ' -- Affijn, Ruud "Gewoon is een tijger." -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>