Olá a todos, mais uma vez venho pedir a ajuda da comunidade para resolver um problema no meu trabalho.
O meu problema é meio complicado de explicar e provavelmente muito fácil mas eu preciso muito pouco de Script e quase nada sei.
1º problema
Então é assim:
Eu tenho cerca de 25 dados num ficheiro e 850 noutro, separei cada um desses ficheiros em 3 partes com linhas iguais ficando com por exemplo L1, L2 e L3 e D1, D2 e D3 (respectivamente para o 1º e 2º ficheiros)Os dados são linhas assim: +1 1:1995 2:54.91665 3:985.89173 4:1.19031 e servem para correr mais tarde num programa.
Os ficheiros L1, L2 e L3 não precisam ser mais mexidos mas os ficheiros D1, D2 e D3 têm de ser separados por linhas desde 5 até 35 vezes para tal fiz o seguinte script
#!/bin/bash
echo "Criar Ficheiros de Dados"
# Loop dos ficheiros
for f in $( ls Decoys_Dataset_* )
do
dout=Parts-$f
rm -rf $dout
mkdir $dout
# Criar as Separacoes e Directórios
for((n=5 ; n<36 ; n++))
do
l=`expr 283 / $n`
sdout="$dout/$n/"
mkdir $sdout
# Separar os Ficheiros
split -$l --numeric-suffixes $f "$sdout"
done
done
echo "Fim"
O que o script me faz é separar cada um desses ficheiros D que contém 283 linhas em pastas correspondentes a cada divisão. O problema é que usando o "expr" acabo sempre por ter 1 ficheiro com 3 ou 4 linhas correspondentes ao resto da divisão. Ou seja no caso da divisão em 5 em vez de obter 5 ficheiros com 56 linhas obtenho 5 ficheiros com 56 linhas e um 6º ficheiro com 3 linhas.
Portanto o que precisava agora era que o último ficheiro que contem as 3 linhas que sobram, pudesse ser dividido por 3 dos outros ficheiros ficando com 3 ficheiros com 57 linhas e 2 ficheiros com 56 linhas só que não consigo fazer esse split. E isso teria de fazer para todas as outras pastas que também têm sempre um ficheiro com linhas a mais.
---------------------------- ´´ ------------------------------- ´´ -------------------------
2º Problema
Depois de ter todos esses ficheiros separados pelas pastas correspondentes precisava criar um script que me junta-se cada um desses resultados com os ficheiros L. Ou seja o L1 teria de juntar com todos os ficheiros separados provenientes do D1, D2 e D3 e neste caso nem sei como ei-de fazer o script se com Cat e Loop ou se existe outra maneira pois tenho os ficheiros L numa pasta e os outros todos em pastas mais pequenas e como já perceberam as combinações são imensas.
----------------------------- ´´ ----------------------------- ´´------------------------
Como eu não percebo quase nada de Script e trabalho em Biologia aqui também ninguém me sabe ajudar muito por isso agradeço desde já qualquer ajuda que possam dar.