On 2011-03-02 14:29, Raleigh Rinehart wrote:
> Suppose I have in one file several lines (could be 100s of such lines)
> like this:
> ..
> <Folder><![CDATA[C:\work\sources\foo\bar\baz\MODULEX\lib]]></Folder>
> ..
> 
> Now in another file I have a list of words, in this instance separated
> by newlines, but could be changed to space/tab/comma/etc delimited.
> The number of words equals the number of lines that match from the
> first file.
> 
> Now what I would like to do is to replace each occurrence of MODULEX
> in file1 with the corresponding word in file 2.
> 
> By corresponding I mean if the lines (from file 1) and the words (from
> file 2) were both well ordered sets then the match is determined by
> the index into the set, or in other words a one-to-one correspondence.

I think what I would do is paste the two files together side-by-side.
You can do this in vim using visual-block mode, or if you're on a unix
machine you could use the paste command.

  :%!paste file2.txt file1.txt
  or
  $ paste file2.txt file1.txt | vim -

After that it's just a simple line-by-line substitution. You could even
use sed if you wanted.

  :%s/\v(\w+)\t(.*)MODULEX/\2\1/

Attachment: pgpH2ONBcodtC.pgp
Description: PGP signature

Reply via email to