I'm trying to do the following in bash
:
>>> import glob
>>> FILES = glob.glob("testing_output/test/intermediate/metawrap_output/initial_binning/*_bins")
>>> " ".join(map(lambda x:" ".join(x), zip(["-A", "-B", "-C"], FILES)))
'-A testing_output/test/intermediate/metawrap_output/initial_binning/maxbin2_bins -B testing_output/test/intermediate/metawrap_output/initial_binning/concoct_bins -C testing_output/test/intermediate/metawrap_output/initial_binning/metabat2_bins'
I can get to the FILES
part but I can't figure out how to get the last line. The reason I want to do this is that sometimes the number of files in FILES
will be 1-3
. Hopefully 3, but sometimes it will be 2 or 1.
My question, how can I essentially prepend -A
, -B
, and -C
depending on how many files are available?
Maybe this will help:
FILES=("testing_output/test/intermediate/metawrap_output/initial_binning/concoct_bins" "testing_output/test/intermediate/metawrap_output/initial_binning/maxbin2_bins" "testing_output/test/intermediate/metawrap_output/initial_binning/metabat2_bins")
echo ${FILES[*]}
testing_output/test/intermediate/metawrap_output/initial_binning/concoct_bins testing_output/test/intermediate/metawrap_output/initial_binning/maxbin2_bins testing_output/test/intermediate/metawrap_output/initial_binning/metabat2_bins
I was able to do this:
python -c """import glob; FILES = glob.glob('testing_output/test/intermediate/metawrap_output/initial_binning/*_bins'); print(' '.join(map(lambda x:' '.join(x), zip(['-A', '-B', '-C'], FILES))))"""
but I couldn't figure out how to save it to a bash variable.
files=("testing_output/test/intermediate/metawrap_output/initial_binning/concoct_bins" "testing_output/test/intermediate/metawrap_output/initial_binning/maxbin2_bins" "testing_output/test/intermediate/metawrap_output/initial_binning/metabat2_bins")
letters=({A..Z})
for ((i=0; i<${#files[@]}; i++)); do echo "-${letters[$i]} ${files[$i]}"; done
Output:
-A testing_output/test/intermediate/metawrap_output/initial_binning/concoct_bins -B testing_output/test/intermediate/metawrap_output/initial_binning/maxbin2_bins -C testing_output/test/intermediate/metawrap_output/initial_binning/metabat2_bins