Pages : 1
#1 Le 20/12/2012, à 15:38
- Sauce
Wget
Bonjour,
Je suis une étudiante en bio (très débutante) et on nous demande de récupérer des séquences donc j'ai créé un script en shell avec le terminal. Or j'ai un léger petit soucis de téléchargement avec wget. dans notre script j'ai écrit,
IDS=$(URL(bonne))
for ID to $IDS
do
wget "$IDS/"
done
quand je l'execute, wget nous dit répertoire "URL(bonne)" inexistante.
Mecri d'avance pour le ou les réponses
Dernière modification par Sauce (Le 20/12/2012, à 15:42)
Hors ligne
#2 Le 20/12/2012, à 15:49
- nesthib
Re : Wget
Si ton script se limite à ce que tu écris, ça n'a pas beaucoup de sens.
IDS=$(URL(bonne))
Instancie la variable IDS avec le retour de la commande URL(bonne), ce qui sans contexte n'existe pas.
Précise donc en détail ce que tu cherches à faire si tu veux que l'on puisse t'aider.
NB. wget peut prendre plusieurs arguments en une seule fois, il se peut que tu n'aies besoin que d'une seule ligne de commande. Donne donc le plus de détails possible pour que l'on te donne la meilleure solution.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 20/12/2012, à 15:52
- Sauce
Re : Wget
Ok voila mon script comme je l'ai écris
#!/bin/bash
echo "c'est partit"
REFS=$(wget -qO essai1 "ftp://ftp.ensembl.org/pub/release-69/fasta/" | more essai1 | grep "Oct" | sed 's/2012 Oct 16 [12][0123456789]:[012345][0123456789] Répertoire <a href="//' | sed -r 's/\/">.{1,}//' | tr -d ' ' | sed 's/:21//')
echo "téléchargement...ok"
for REF in $REFS
do
wget -q "$REF/ncrna/"
done
echo "téléchargements des ncRNA...o"
mkdir ~/bin/bonjour
mv index.html* ~/bin/bonjour
echo "déplacement fichier effectué"
cd ~/bin/bonjour
FTPS=$(grep "\.ncrna\." index.html* | tr -d ' ' | sed -r 's/index.{1,}href="//' | sed -r 's/">.{1,}//' | sed 's/"//' | sed 's/:21//')
for FTP in $FTPS
do
wget -q "$FTP/"
done
echo " dernier téléchargement"
Hors ligne
#4 Le 20/12/2012, à 16:13
- NotF0und
Re : Wget
Explique nous ce que tu veux faire avec précision stp, j'ai peur de ne pas trop comprendre ...
Tu veux récupérer tous les fichiers contenus dans les différents dossiers qui portent le nom ncRNA ? C'est bien ça ?
Dernière modification par NotF0und (Le 20/12/2012, à 16:14)
Hors ligne
#5 Le 20/12/2012, à 16:26
- Sauce
Re : Wget
Je cherche à récupérer des séquences de ncRNA via la banque de FTP de la DataBank Ensembl.
La DB Ensembl est organisée comme ça :
pub(lications)
release-69 (dernière mise à jour)
fasta (format)
espèce (ex : homo_sapiens)
cdna
dna
pep
ncrna
README
CHECKSUMS
ncRNA
J'ai des problèmes avec la commande wget et l'enregistrement des résultats.
Après ça je suis supposée récupérer les rRNA au milieu de tous les ncRNA à l'intérieur des fichiers au formart .fa (fasta).
Mais j'en suis pas encore là ^^.
Hors ligne
#6 Le 20/12/2012, à 16:39
- NotF0und
Re : Wget
Ok je vois, ne bougez pas je vais refaire votre script
Hors ligne
#7 Le 20/12/2012, à 16:56
- NotF0und
Re : Wget
Voila ce que je viens de faire, j'espère que j'avais bien compris votre besoin. J'ai rajouté quelques petites astuces pour que ce script soit plus "intelligent". Il vous demandera par exemple le nom du dossier a créer.
Vous pouvez bien évidemment le modifier à votre guise !!
#!/bin/bash
echo "[!] Script launch"
REFS=$(wget -qO essai1 "ftp://ftp.ensembl.org/pub/release-69/fasta/" | more essai1 | grep "Oct" | cut -b 44-1000 | sed 's/2012 Oct 16 [12][0123456789]:[012345][0123456789] Répertoire <a href="//' | sed -r 's/\/">.{1,}//' | tr -d ' ' | sed 's/:21//')
echo "[!] Telechargement en cours"
echo -e "[!] Ceci peut prendre quelques minutes ... \n"
for REFS in $REFS
do
#echo "Dossier du ftp actuel : $REFS" #A decommenter si vous voulez voir dans quel dossier vous etes
wget -q "$REFS/ncrna/*.ncrna.fa*"
done
#Création du dossier
read -p "[?] Saisir le dossier a creer : " NEW_DOSS
if [[ -d $NEW_DOSS ]]
then
echo -e "[!] Le dossier existe déjà \n"
else
mkdir ~/bin/$NEW_DOSS
echo -e "\n[+] Creation du dossier effectué"
fi
#Deplacement des fichiers
if [[ ! -e "*.ncrna.fa*" ]]
then
echo "[!] Aucun fichier .ncrna.fa trouve"
else
echo "[+] Deplacement des fichiers .ncrna dans le dossier $NEW_DOSS"
mv *.ncrna.fa* ~/bin/$NEW_DOSS
echo "[+] Deplacement des fichiers effectue"
fi
#Changement de repertoire
cd ~
cd ~/bin/$NEW_DOSS
echo "Vous etes maintenant dans votre dossier $NEW_DOSS"
N'hésitez pas à poser des questions au besoin
Cordialement,
Notfound
Dernière modification par NotF0und (Le 20/12/2012, à 16:56)
Hors ligne
#8 Le 05/01/2013, à 17:44
- René-aristide
Re : Wget
Bonjour,
Merci pour votre réponses, cela m'a beaucoup aidé. Cependant je voulais savoir comment utiliser grep afin d'avoir le même résultat qu'avec -A parce je n'ai jamais utilisé la commande -A?
Cordialement.
Hors ligne
#9 Le 05/01/2013, à 19:57
- xavier4811
Re : Wget
Bonjour,
grep n'est pas le meilleur outil pour ce travail.
Est ce que la création du fichier essai1 et le déplacement de tous les fichiers téléchargés est nécessaire ?
Autant tout copier au bon endroit directement.
Le changement de dossier en fin de script ne peut fonctionner qu'en utilisant la méthode du "dot sourcing"
$ . ./monscript.sh
#!/bin/bash
echo "[!] Script launch"
S_URL="ftp://ftp.ensembl.org/pub/release-69/fasta/"
REFS=$(curl -m 10 -s $S_URL | awk -v s_url="$S_URL" '/Oct/ { print s_url $9 }')
#Création du dossier
read -p "[?] Saisir le dossier a creer : " NEW_DOSS
if [[ -d ~/bin/$NEW_DOSS ]]
then
echo -e "[!] Le dossier existe déjà \n"
else
mkdir ~/bin/$NEW_DOSS
echo -e "\n[+] Creation du dossier effectué"
fi
echo "[!] Telechargement en cours"
echo -e "[!] Ceci peut prendre quelques minutes ... \n"
for REFS in $REFS
do
# echo "Dossier du ftp actuel : $REFS" #A decommenter si vous voulez voir dans quel dossier vous etes
wget -q -P ~/bin/$NEW_DOSS "$REFS/ncrna/*.ncrna.fa*"
done
#Changement de repertoire
cd ~/bin/$NEW_DOSS
echo "Vous etes maintenant dans votre dossier $NEW_DOSS"
Hors ligne
Pages : 1