sed, awk, or something...help meeeeeeeeeee
steve
steve at lonetwin.net
Mon Sep 28 18:31:09 UTC 2009
On 09/28/2009 11:18 PM, Joerg Bergmann wrote:
> Am 28.09.2009 19:38, schrieb Kanwar Ranbir Sandhu:
>> Hi All,
>>
>> I don't know if I should use sed for what I'm about to ask, but it seems
>> like a good idea. If awk is better, or something else entirely, that's
>> fine too.
>>
>> I have two files. File "1" looks like this:
>>
>> AA
>> BB
>> CC
>> DD
>>
>> AA
>> BB
>> CC
>> DD
>>
>> File "2" looks like this:
>>
>> BBBB1
>> BBBB2
>> BBBB3
>>
>> So, "BB" in file "1" always occurs in the same spot (i.e. between lines
>> AA and CC). Knowing that, how do I replace the first occurrence of "BB"
>> in file "1" with "BBBB1" from file 2, the second occurrence of "BB" in
>> file "1" with "BBBB2" from file 2, and so on?
>>
>> I think a bash 'for' or 'while' loop may be useful here, too. But, it's
>> the sed/awk/whatever bits I don't know how to do. I've read some of the
>> man/info page, looked up sed help on the net, etc. I'm still not sure
>> how to do the above with sed.
>>
>> Thanks in advance!
>>
>> Regards,
>>
>> Ranbir
>>
> Probably it's not what you want, but I would prefer writing a
>
> 50 lines standard C program for that task...
>
Seriously ?? ...no, really, seriously ?
I'd recommend using python.
something like:
--------------------------------------
file1_lines = open(file1).readlines()
file2_lines = open(file2).readlines()
modified_file_lines = []
for line in file1_lines:
if line == 'BB\n':
modified_file_lines.append(file2_lines.pop(0))
else:
modified_file_lines.append(line)
open("modified.out", 'w').write(modified_file_lines)
--------------------------------------
Of course, i've gone for clarity rather than efficiency here. If you understand
that, I'll gladly show you how to write it more efficiently.
cheers,
- steve
--
random non tech spiel: http://lonetwin.blogspot.com/
tech randomness: http://lonehacks.blogspot.com/
what i'm stumbling into: http://lonetwin.stumbleupon.com/
More information about the fedora-list
mailing list