Supondo que cada nome de arquivo que você está processando tenha o mesmo comprimento e que cada substring tenha o mesmo comprimento, você pode dividir com base nisso. Além disso, certifique-se de onde vem a parte -1
do ID
, então suponho que você obtenha de lane_1
.
for file in *_P1*
do
id=${file:0:18}-${file:24:1}
pu=${file:8:10}
lb=${file:0:7}
echo "id=$id pu=$pu lb=$lb"
done
Atualizar
Isso deve funcionar desde que certos pontos e sublinhados permaneçam consistentes:
for file in *_P1*
do
lb=${file%%.*}
pu=${file%%.lane_*}
pu=${pu#*.}
num=${file%%_P*}
num=${num##*_}
id="$lb-$pu-$num"
echo "id=$id pu=$pu lb=$lb"
done