Não há uso para nenhuma ferramenta de processamento de texto diferente de cat
, já que tudo o que você está fazendo com o conteúdo do arquivo é concatená-las.
Começamos no RootDir. Eu suponho que em NNN (K), K ≤ 999999999, e K é escrito sem levar 0. Eu construo os padrões com ([0-9])
, ([0-9][0-9])
, etc., de modo a concatenar NNN (9) antes de NNN (10 ).
pattern_prefix='[0-9][0-9][0-9]([1-9]'
while [ ${#pattern_prefix} -le 13 ]; do
# Iterate over the NNN(K) directory where K has a certain number of digits
for dir in $pattern_prefix\); do
if ! [ -d "$dir" ]; then break; fi
base=${dir%\(*}
target=$base/$base
# If this is the first NNN(K) directory we meet for this NNN, create the base
if [ ! -d "$target" ]; then
mkdir "$target"
cp -p "$base/"*.fastq "$target"
fi
# For each file in NNN(K), determine the target file and append
for f in "$dir/"*.fastq; do
stem=${f##*/}; stem=${f#*_*_}
set -- "$target/"*_*_"$stem"
cat "$f" >>"$1"
done
done
pattern_prefix=$pattern_prefix'[0-9]'
done