[SHELL] problème extraction de chaîne
Fermé
[ROX]
-
1 févr. 2010 à 17:15
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 2 févr. 2010 à 09:25
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 2 févr. 2010 à 09:25
A voir également:
- [SHELL] problème extraction de chaîne
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
- Classic shell windows 11 - Télécharger - Personnalisation
- Chaine radio - Télécharger - Médias et Actualité
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 févr. 2010 à 19:26
1 févr. 2010 à 19:26
Salut,
j'aimerai extraire une chaine de type 'root@<ip_srv_distant1>:<chemin_destination1>' d'un fichier texte pour la mettre dans la variable $destination pour pouvoir détecter après si cette destination existe ou non
Et il y a quoi d'autre dans ton fichier ?
Sans plus d'info (exemple) il est difficile de te pondre une commende adéquate ;-((
Et puis ton serveur "rsync" tu y accèdes comment ? Via ssh ou tu as un daemon rsyncd qui tourne dessus ?
j'aimerai extraire une chaine de type 'root@<ip_srv_distant1>:<chemin_destination1>' d'un fichier texte pour la mettre dans la variable $destination pour pouvoir détecter après si cette destination existe ou non
Et il y a quoi d'autre dans ton fichier ?
Sans plus d'info (exemple) il est difficile de te pondre une commende adéquate ;-((
Et puis ton serveur "rsync" tu y accèdes comment ? Via ssh ou tu as un daemon rsyncd qui tourne dessus ?
Oui dsl ^^
et bien le fichier dont je parle contiendra juste la commande :
"rsync -rupgoz -e ssh login@<ip_srv_distant>:<chemin_destination> <chemin_source>"
et je voudrais juste extraire la partie "login@<ip_srv_distant>:<chemin_destination>"
la connexion s'établit grâce au protocole ssh (donc pas de rsyncd)
et bien le fichier dont je parle contiendra juste la commande :
"rsync -rupgoz -e ssh login@<ip_srv_distant>:<chemin_destination> <chemin_source>"
et je voudrais juste extraire la partie "login@<ip_srv_distant>:<chemin_destination>"
la connexion s'établit grâce au protocole ssh (donc pas de rsyncd)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
1 févr. 2010 à 20:10
1 févr. 2010 à 20:10
[tmpfs]$ cat plop Oui dsl ^^ et bien le fichier dont je parle contiendra juste la commande : rsync -rupgoz -e ssh login@<ip_srv_distant>:<chemin_destination> <chemin_source> et je voudrais juste extraire la partie "login@<ip_srv_distant>:<chemin_destination>" la connexion s'établit grâce au protocole ssh (donc pas de rsyncd) [tmpfs]$ sed -n '/^rsync/ s/.*ssh \([^ ]*\) .*/\1/p' plop login@<ip_srv_distant>:<chemin_destination> [tmpfs]$
;-))
[tmpfs]$ sed -n '/^rsync/ s/.*ssh \([^ ]*\) .*/\1/p' plop
login@<ip_srv_distant>:<chemin_destination>
[tmpfs]$
heu ... ouai ... concrètement ça signifie quoi cet enchainement de symboles ?
Parce que j'ai jamais vu une suite d'options et compagnie comme celle-ci :-p
(Je parle de la 1e ligne)
Pourrais-tu éclaircir ton développement ?
Je veux bien croire que ça puisse résoudre mon problème mais ta commande ne me dis rien
... je ne connais pas le scripting sed, je sais seulement que c'est un outil puissant de gestion de chaînes de caractères
login@<ip_srv_distant>:<chemin_destination>
[tmpfs]$
heu ... ouai ... concrètement ça signifie quoi cet enchainement de symboles ?
Parce que j'ai jamais vu une suite d'options et compagnie comme celle-ci :-p
(Je parle de la 1e ligne)
Pourrais-tu éclaircir ton développement ?
Je veux bien croire que ça puisse résoudre mon problème mais ta commande ne me dis rien
... je ne connais pas le scripting sed, je sais seulement que c'est un outil puissant de gestion de chaînes de caractères
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
2 févr. 2010 à 09:25
2 févr. 2010 à 09:25
-n
Affichage sur demande. Marche avec le paramètre "p" en fin de syntaxe.
/^rsync/
On cherche le motif (rsync) en début de ligne "^"
s
Commande "s" de substitution
/
Délimiteur gauche de mise en correspondance
.*ssh
On cherche une chaine de caractère qui englobe tout (.*) jusqu'à ce qu'elle rencontre le mot 'ssh' suivi d'un espace
\(
Début d'une sous chaine.
[^ ]*
La sous chaine comprendra une suite de caractère jusqu'à ce qu'elle rencontre une espace.
[^ ] signifie à l'exception d'un espace
\)
Fin de la sous-chaine
.*
Un espace suivi par tous les caractères restant
/
Fin du délimiteur gauche (correspondance) et début de la partie droite de remplacement
\1
Référence arrière faisant référence au contenu de la sous-chaine
/
Délimiteur de fin de la partie droite de remplacement
p
On affiche le motif.
Pur plus de détails voir "sed".
Affichage sur demande. Marche avec le paramètre "p" en fin de syntaxe.
/^rsync/
On cherche le motif (rsync) en début de ligne "^"
s
Commande "s" de substitution
/
Délimiteur gauche de mise en correspondance
.*ssh
On cherche une chaine de caractère qui englobe tout (.*) jusqu'à ce qu'elle rencontre le mot 'ssh' suivi d'un espace
\(
Début d'une sous chaine.
[^ ]*
La sous chaine comprendra une suite de caractère jusqu'à ce qu'elle rencontre une espace.
[^ ] signifie à l'exception d'un espace
\)
Fin de la sous-chaine
.*
Un espace suivi par tous les caractères restant
/
Fin du délimiteur gauche (correspondance) et début de la partie droite de remplacement
\1
Référence arrière faisant référence au contenu de la sous-chaine
/
Délimiteur de fin de la partie droite de remplacement
p
On affiche le motif.
Pur plus de détails voir "sed".