#1 Le 12/02/2021, à 17:11
- Compte supprimé
[Résolu] Sélectionner une partie de la dernière ligne d'un fichier
Bonjour,
Je cherche à faire un script pour monter la dernière sauvegarde borg quand j'en ai besoin.
Pour ce faire il me faut lancer la commande :
borg mount /chemin_vers_repo::nom_sauvegarde ~/mon_dossier
Le nom de la sauvegarde est dans le 19 premiers caractères de la dernière ligne du fichier.
Pour le moment, je constitue le fichier repo.txt qui contient la liste des sauvegardes.
Je compte le nombre de lignes du fichier :
nb_lignes=$(sed -n '$=' /home/moi/repo.txt)
Je peux trouver le nom de la sauvegarde de la dernière ligne en mettant son rang en dur dans la commande :
date_derniere=$(cat /home/moi/repo.txt| sed -n '20p' | cut -c1-19)
Ma question est donc :
dans la commande ci-dessus, comment remplacer 20 par $nb_lignes ?
Je ne trouve pas la bonne syntaxe
Merci de votre aide.
Dernière modification par Compte supprimé (Le 15/04/2021, à 08:35)
#2 Le 12/02/2021, à 17:39
- erresse
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
Salut,
Récupère juste la dernière ligne directement avec
tail -n 1 mon_fichier
Tu n'as pas besoin de compter les lignes...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#3 Le 12/02/2021, à 18:59
- Compte supprimé
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
Merci, je m'attendais bien à un truc aussi simple
J'ai donc le nom de la dernière sauvegarde avec :
date_derniere=$(tail -n 1 ~/repo.txt | cut -c1-19)
Par contre je m'aperçois que j'ai encore une question pour mettre le nom de la sauvegarde dans la commande pour la monter , ça ne fonctionne pas comme cela :
borg mount /chemin_sauvegarde/repo-::$date_dernière ~/Public
Dernière modification par Compte supprimé (Le 12/02/2021, à 19:03)
#4 Le 12/02/2021, à 20:08
- Watael
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
read -n 19 dateDerniere < <(tac tonFichier)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 12/02/2021, à 20:41
- Compte supprimé
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
Merci Watael, c'est encore plus simple.
Et pour mettre une variable dans la commande borg mount, tu as une suggestion stp ?
borg mount /chemin_sauvegarde/repo-::$date_dernière ~/Public -qui n'est pas correct.-
Dernière modification par Compte supprimé (Le 12/02/2021, à 20:43)
#6 Le 12/02/2021, à 20:49
- Watael
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
pourquoi "pas correct" ?
déjà, mettre la variable entre guillemets.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 12/02/2021, à 20:58
- Compte supprimé
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
pourquoi "pas correct" ?
déjà, mettre la variable entre guillemets.
Alors c'est cela que je ne fais pas comme il faut.
Réglé en créant une variable qui prend le chemin plus le nom
sauvegarde=$chemin$date_derniere
borg mount $sauvegarde ~/Public
Les guillemets doivent encadrer la variable.
borg mount /chemin::"$date_derniere" ~/Public
Merci d'avoir insisté
Dernière modification par Compte supprimé (Le 13/02/2021, à 07:41)
#8 Le 12/02/2021, à 21:21
- Watael
Re : [Résolu] Sélectionner une partie de la dernière ligne d'un fichier
et les guillemets ?! où c'est-y qui sont, hein ?!
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne