# Récupérer une partie de la saisie utilisateur (bash)

**URL:** <https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784 "2016-02-20T23:00:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hyde577](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/dec6dc/32.png) [@Hyde577](https://www.debian-fr.org/u/Hyde577)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/1 "2016-02-20T23:00:09Z")

</div>

Bonjour,

Je tente d’écrire mon premier script bash malheureusement malgré mes recherches je ne trouve pas la solution à mon problème.  
Peut être que je cherche compliqué je ne sais pas.

L’idée c’est de faire un script pour restaurer une sauvegarde mysql (mysqldump), mais voila :

j’ai plusieurs bases de données sous la forme “nom\_dd/mm/yyyy.sql” Je demande à l’utilisateur d’entrer le nom complet de ce fichier.  
Je veut pouvoir créer une nouvelle base, si elle n’existe pas déjà (pour ensuite restaurer les données avec le fichier .sql.) Et chose importante, que le nom de cette nouvelle base corresponde au “nom” de la base entré par l’utilisateur. (le nom sans la date en fait)

J’ai donc besoin de récupérer le “nom” dans une variable quand l’utilisateur entre le “nom\_dd/mm/yyyy.sql”. Ceci afin de vérifier si la base existe et si non de la créer.

Et ensuite de récupérer la totalité du nom du fichier pour l’inclure dans la commande mysql.

Je suppose qu’il faut utiliser read mais avec quel option ?

J’en suis à quelque chose comme ça :

#test du fichier de backup et installation

echo -n "Entrez le nom du fichier de sauvegarde: "  
read file  
if [-e “$file”]; then  
{

#récupération du nom de la base  
NOMDELABASE=$file  
#donc ici j’ai le nom complet, maintenant il faut virer le “\_dd/mm/yyyy.sql”

Merci.

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/2 "2016-02-20T23:00:21Z")

</div>

Avec sed(1) et les [expressions régulières](http://fr.wikipedia.org/wiki/Regex) :

```auto
VAR=nom_dd/mm/yyy.sql
echo $VAR | sed 's#_[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}\.sql$##'
```

(en supposant que « dd/mm/yyy » soit toujours sous la forme “2 chiffres/2 chiffres/4 chiffres”, pas de 1/7/08 par exemple).

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/3 "2016-02-20T23:00:22Z")

</div>

bonsoir,

ou plus simplement :

```auto
VAR="nom_dd/mm/yyy.sql"
nom="${VAR%%_*}"
```

---

<div class="post-metadata">

**Author:** ![Willy.P](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/e9a140/32.png) [@Willy.P](https://www.debian-fr.org/u/Willy.P)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/4 "2016-02-20T23:00:44Z")

</div>

Bien que les reponses précedente soit très bien, “cut” peut aussi faire l’affaire.

```auto
VAR="nom_dd/mm/yyy.sql"
nomdebase=$(echo $VAR|cut -d"_" -f1 )
```

---

<div class="post-metadata">

**Author:** ![Hyde577](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/dec6dc/32.png) [@Hyde577](https://www.debian-fr.org/u/Hyde577)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/5 "2016-02-20T23:00:44Z")

</div>

Merci à tous, je ne sais quel proposition choisir 😉

J’ai réussi à faire tout ce que je voulais ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 11:00 UTC](https://www.debian-fr.org/t/recuperer-une-partie-de-la-saisie-utilisateur-bash/27784/6 "2016-02-20T23:00:46Z")

</div>

[quote=«&nbsp;Hyde577&nbsp;»]Merci à tous, je ne sais quel proposition choisir 😉

J’ai réussi à faire tout ce que je voulais ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")[/quote]  
La version de totor est la meilleure.
