Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 tongue

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...
big_smile


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 smile

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

Watael a écrit :

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é cool

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