У меня есть несколько имен файлов в bash, которые я получил с помощью
$ ones=$(find SRR*pass*1*.fq)
$ echo $ones
SRR6301033_pass_1_trimmed.fq
SRR6301034_pass_1_trimmed.fq
SRR6301037_pass_1_trimmed.fq
...
Затем я преобразовал их в массив, чтобы я мог перебрать этот список и выполнить некоторые операции с именами файлов:
# convert to array
$ ones=(${ones// / })
и итерация:
for i in $ones;
do
fle=$(basename $i)
out=$(echo $fle | grep -Po '(SRR\d*)')
echo "quants/$out.quant"
done
, которая производит:
quants/SRR6301033
SRR6301034
...
...
SRR6301220
SRR6301221.quant
Однако я хочу это:
quants/SRR6301033.quant
quants/SRR6301034.quant
...
...
quants/SRR6301220.quant
quants/SRR6301221.quant
Может кто-нибудь объяснить, почему яне работает и как это исправить?