I have some dirty work to do, so a Bash script seems to be a good choice. I\'m new to Bash, and the experience makes me kind of frustrated.
The file mapfiles.txt con
You can simplify this a lot:
while read file key log lat
do
echo "$cmd" "$key" "$log" "$lat" "$file"
done < "$input"
Using GNU Parallel you can do it in a single line + you get it done in parallel for free:
cat mapfile.txt | parallel --colsep '\s' prog {2} {3} {4} {1}
Watch the intro videos to learn more: http://www.youtube.com/watch?v=OpaiGYxkSuQ
prog
could have disappeared because $cmd
is not exported. Your version of /bin/sh might execute the while
statement in a separate shell. This should not be the case, and this is not the case for my installation of bash, but perhaps yours behaves in interesting ways in this department.
UPD I see that you have several boxes that give the same results. This makes the subshell theory unlikely. Perhaps you have some funny characters in your script and/or source file.
I have copied and pasted your script and your source file to my gentoo box and it gives the expected results. Perhaps you should do the same, and compare the files with your original ones.