bash oom problem

psmith psmith at fedoraproject.org
Tue Oct 6 18:24:30 UTC 2009


On 04/10/09 15:28, Mikkel wrote:
> Patrick O'Callaghan wrote:
>    
>> On Sun, 2009-10-04 at 13:54 +0100, psmith wrote:
>>      
>>> do you have any suggestions what/where i should be looking to get my
>>> required output?
>>>        
>> As Sam says, your initial attempt is trying to produce all 1.5TB at
>> once, which is why it blows up, but that's going to happen anyway even
>> if you program the same thing in C. IOW it's not an issue with the Shell
>> per se, but with the approach to the problem.
>>
>> Assuming you actually want all 1.5TB of data (really?) you'd be better
>> consuming it as it's produced, perhaps via a pipe. Of course that
>> depends on what you're doing with it, which you haven't said.
>>
>> poc
>>
>>      
> One way to do it would be to break it down into nested loops. I am
> not sure you could do it in bash - I am not sure how bash handles
> loops. You can try something like: (Not tested)
>
> for a in {A..Z}; \
> do for b in {A..Z}; \
> do for c in {A..Z}; \
> do for d in {A..Z}; \
> do for e in {A..Z}; \
> do for f in {A..Z}; \
> echo $a$b$c$d$e$f ; \
> done ; done ; done ; done ; done ; done ; done ; done
>
> Mikkel
>    
thanks mikkel :-) this got it to output the data to the file as it was 
working though the command needed to be

for a in {A..Z}; \
do for b in {A..Z}; \
do for c in {A..Z}; \
do for d in {A..Z}; \
do for e in {A..Z}; \
do for f in {A..Z}; \
do for g in {A..Z}; \
do for h in {A..Z}; \
do echo $a$b$c$d$e$f$g$h; \
done;done;done;done;done;done;done;done; > wl1

now i've just got to wait for the new hard drives to arrive and also 
work out how to get it to start outputting a different file every 2GB or 
so :-)

thanks again
phil




More information about the fedora-list mailing list