Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2587 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script Bash (débutant) - manipulations chaines de charactéres ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Bash (débutant) - manipulations chaines de charactéres ?

n°1372372
galactus20​03
Pensez toujours à évoluer...
Posté le 20-01-2015 à 15:26:57  profilanswer
 

Bonjour aux génies du scripts BASH. J'ai besoin d'aide.
 
Je doit faire un script pour transformer une phrase en une commande concernant les SUDO. Voilà la phrase:
 
Bla bla bla USER1@SERVER execute any command with sudo as the user USER2@SERVER
 
Elle doit être transformer ainsi:
 
USER1 SERVER.domainname=(USER2)NOPASSWD:ALL
 
Quelqu'un a-t-il une idée? Avec quel commande de découpage de chaine de charactéres puis-je faire cela ?
 
 :jap:


Message édité par galactus2003 le 22-01-2015 à 00:30:30
mood
Publicité
Posté le 20-01-2015 à 15:26:57  profilanswer
 

n°1372469
l4nkou
Dr House Fan
Posté le 21-01-2015 à 15:22:11  profilanswer
 

Bonjour,
 
On voit pas trop le lien entre les 2 phrases avec le code couleur sur des éléments très différents.
Tu peux utiliser le code couleur uniquement pour ce qui doit être repris entre les 2 expressions ?
 


---------------
Les avis, c'est comme les anus, tout le monde en a un.
n°1372500
galactus20​03
Pensez toujours à évoluer...
Posté le 22-01-2015 à 00:34:09  profilanswer
 

l4nkou a écrit :

Bonjour,

 

On voit pas trop le lien entre les 2 phrases avec le code couleur sur des éléments très différents.
Tu peux utiliser le code couleur uniquement pour ce qui doit être repris entre les 2 expressions ?

 


 

Bonjour. En fait, les couleurs c'est ce qui doit être remplacé.

 

AH, bonne idée, en fait, oui, ce qui doit être repris de la première phrase, c'est USER1, SERVER, USER2. Et ils sont autour de l'@. Alors, comment on les prends? La chaine qui contient un @ entouré d'un espace ?

Message cité 1 fois
Message édité par galactus2003 le 22-01-2015 à 00:36:32
n°1372503
tachiruko
Posté le 22-01-2015 à 07:55:36  profilanswer
 

Je pense que tu peux utilisé les commandes, "whoami" et "hostname" pour connaitre ton user en dynamique, et redirigé la sortie vers le terminal de ton utilisateur.  
 

n°1372516
Rawkins68
Don't panic !
Posté le 22-01-2015 à 10:19:02  profilanswer
 

galactus2003 a écrit :


 
Bonjour. En fait, les couleurs c'est ce qui doit être remplacé.
 
AH, bonne idée, en fait, oui, ce qui doit être repris de la première phrase, c'est USER1, SERVER, USER2. Et ils sont autour de l'@. Alors, comment on les prends? La chaine qui contient un @ entouré d'un espace ?


 

Code :
  1. echo "Bla bla bla USER1@SERVER" | cut -d'@' -f 1,2 | tr '@' ' '
  2. =
  3. Bla bla bla USER1 SERVER


 
À toi de voir comment virer le "Bla bla bla" et insérer le tout dans ta commande.  

Spoiler :

awk peut être ton ami.

n°1372520
galactus20​03
Pensez toujours à évoluer...
Posté le 22-01-2015 à 10:47:49  profilanswer
 

Rawkins68 a écrit :


 

Code :
  1. echo "Bla bla bla USER1@SERVER" | cut -d'@' -f 1,2 | tr '@' ' '
  2. =
  3. Bla bla bla USER1 SERVER


 
À toi de voir comment virer le "Bla bla bla" et insérer le tout dans ta commande.  

Spoiler :

awk peut être ton ami.



 
 
Hum, merci. mais je comprends déjà pas ta première ligne, lol. Bon, ok, je vais regarder AWK, merci rawkins68.

n°1372521
galactus20​03
Pensez toujours à évoluer...
Posté le 22-01-2015 à 10:50:44  profilanswer
 

tachiruko a écrit :

Je pense que tu peux utilisé les commandes, "whoami" et "hostname" pour connaitre ton user en dynamique, et redirigé la sortie vers le terminal de ton utilisateur.  
 


 
Non, non, pas du tout cela. je reçois la première ligne en texte. Je veux la mettre en entrée d'un petit script pour qu'il me la sorte dans la forme 2 de façon à pas le faire à la main, car j'en reçoit beaucoup par jour et je voudrais automatiser cela.

n°1372522
Rawkins68
Don't panic !
Posté le 22-01-2015 à 10:51:45  profilanswer
 

galactus2003 a écrit :


 
 
Hum, merci. mais je comprends déjà pas ta première ligne, lol. Bon, ok, je vais regarder AWK, merci rawkins68.


 
En fait, cut va te permettre de couper ta chaine de caractères à un certain délimiteur.
Par exemple, tu as quelque chose comme :
bonjour:salut:hello
 
On voit bien que le délimiteur est ':', du coup, si tu veux garder seulement le premier mot :

Code :
  1. echo "bonjour:salut:hello" | cut -d':' -f 1


L'option -f permet de spécifier le champ à garder.
Si tu veux garder le troisième mot :

Code :
  1. echo "bonjour:salut:hello" | cut -d':' -f 3


Si tu veux garder le premier et le troisième :

Code :
  1. echo "bonjour:salut:hello" | cut -d':' -f 1,3


 
Ainsi de suite.
 
tr dans ce cas là, permet de remplacer l'arobase par un espace.
 
Et évidemment, pour plus de détails :
man tr
man cut
man awk

n°1372540
Profil sup​primé
Posté le 22-01-2015 à 15:17:02  answer
 

salut,
 

Code :
  1. echo "Bla bla bla USER1@SERVER execute any command with sudo as the user USER2@SERVER" | sed 's/.* \([^@]*@[^ ]*\).* \([^@]*@[^ $]*\)/\1.domainname=(\2/g; s/@/ /g;s/ \w*$/)NOPASSWD:ALL /'
  2. USER1 SERVER.domainname=(USER2)NOPASSWD:ALL

n°1372591
galactus20​03
Pensez toujours à évoluer...
Posté le 23-01-2015 à 17:07:25  profilanswer
 

whoua, merci!
 
Bon, je vais décrypter tous ça et voir ce que cela donne.
 
Merci à vous, les experts  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script Bash (débutant) - manipulations chaines de charactéres ?

 

Sujets relatifs
Problème paramètre sortie procédure script bash[Débutant] Linux et OS Alternatifs
Puissance 4 BashScript en root avec SSHFS sans mot de passe, c'est possible ? (résolu)
Question ssh pour débutant - copie de répertoire[Bash - Shell] Script qui se lance tant que la condition est pas valid
Erreur script de sauvegarde avec LFTP 
Plus de sujets relatifs à : Script Bash (débutant) - manipulations chaines de charactéres ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR