Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 14h24   #1
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
Par défaut remplacer underscore par espace

Bonjour
je travaille sur un script shell en .sh
je vous explique mon problème je récupère un argument sous la forme ${tableau[2]}
dedans il y a un argument du style ceci_est_un_argument et j'aimerai le transformer en ceci est un argument avez vous une idée s'il vous plait ?
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 14h38   #2
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 549
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 549
Points : 4 269
Points : 4 269
Hello,

Code :
1
2
 
echo ${tableau[2]} | sed -e 's/_/ /g'
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 14h43   #3
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
c'est ce que je voulais merci, mais j'aimerai mettre cette valeur dans un nouvelle argument comment puis-je procéder?
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 14h44   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Code :
echo ${tableau[2]//_/ }
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 14h48   #5
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Code :
1
2
3
4
5
6
7
8
$ echo $TEST
 
$ TOTO=exemple_remplace
$ echo $TOTO
exemple_remplace
$ TEST=${TOTO//_/ }
$ echo $TEST
exemple remplace
edit: erf, grillé :/

Sinon, pour la première solution plus portable, tu peux l'utiliser ainsi :
Code :
1
2
3
$ TEST=`echo $TOTO | sed 's/_/ /g'`
$ echo $TEST
exemple remplace
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/04/2011, 14h56   #6
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
Merci beaucoup j'ai limite trop de choix ^^
Maintenant que je vous tiens je vais en profiter car je suis face à un problème que je ne sais pas résoudre
Comment fait on pour faire un grep d'une chaine de caractère du style

grep coucou les amis

?
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h02   #7
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 549
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 549
Points : 4 269
Points : 4 269
Pour prendre la chaine de caractères avec les espaces. tu dois l'encadrer de simple quotes


Code :
1
2
 
grep 'blalblaa baabjbaa bajaab'
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 13/04/2011, 15h03   #8
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
je vous explique mieux mon probleme
Code :
1
2
3
4
5
6
7
8
9
10
 
root@ABFNAGIOSDEV:/opt/test/Script/eth# snmpwalk -v 2c -c public 192.168.20.20 .1.3.6.1.2.1.2.2.1.2 | grep Broadcom
 
IF-MIB::ifDescr.65539 = STRING: Broadcom NetXtreme Gigabit Ethernet
 
root@ABFNAGIOSDEV:/opt/test/Script/eth# snmpwalk -v 2c -c public 192.168.20.20 .1.3.6.1.2.1.2.2.1.2 | grep Broadcom NetXtreme Gigabit Ethernet
 
grep: NetXtreme: No such file or directory
grep: Gigabit: No such file or directory
grep: Ethernet: No such file or directory
donc lorsque je ne met que Broadcom il me trouve un truc si je met un deuxieme mot ou le nom entier de la carte il ne me trouve plus rien
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h04   #9
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par fbb53 Voir le message
Comment fait on pour faire un grep d'une chaine de caractère du style

grep coucou les amis

?
Tu mets des quotes autour...
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h05   #10
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
je vais toujours chercher top loin moi
Merci pour vos réponses
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h06   #11
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Forcément si tu édites entre temps, j'ai presque l'air d'un neuneu avec ma réponse

Sinon si tu cherches plusieurs motifs à la fois :

Code :
grep -E 'Broadcom|NetXtreme|Gigabit|Ethernet'
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h26   #12
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
je pensais avoir résolu mon problème mais un nouveau est apparu ^^

si je fais grep 'Broadcom NetXtreme Gigabit Ethernet'
j'ai ce que je veux
mais si je fait

grep '$nom1'

avec nom1=${tableau[2]} | sed -e 's/_/ /g'
ou
nom1=${tableau[2]//_/ }

J'ai une erreur donc je suis en train de me dire qu'il y a des espace a la fin de ma ligne car si je fais
grep 'Broadcom NetXtreme Gigabit Ethernet '

avec un espace a la fin j'obtiens la même erreur

Avez ou une idée pour enlever les espaces en fin de ligne?
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/04/2011, 15h34   #13
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Pour qu'une variable soit interprétée il faut la quoter avec des doubles-quotes.

__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 15h38   #14
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
un GROS merci
ça a l'air si simple pour vous ^^
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h42   #15
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 549
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 549
Points : 4 269
Points : 4 269
Citation:
Envoyé par fbb53 Voir le message
un GROS merci
ça a l'air si simple pour vous ^^
Si tu prends la peine de lire des tutoriaux sur le shell et le scripting. ça le sera tout autant pour toi
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 15h50   #16
Membre éclairé
 
Avatar de FRUiT
 
Homme
Inscription : février 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 83
Points : 326
Points : 326
Citation:
Envoyé par fbb53 Voir le message
je vais toujours chercher top loin moi
LOL

Sans vouloir te froisser, je pense que ton problème est l'inverse : tu ne cherches carrément pas du tout...
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
FRUiT est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 15h52   #17
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
bon aller je vous sens motivés donc j'en profite

si je fais un grep 'BASP Virtual Adapter' j'obtiens 3 réponses et j'aimerai récupérer seulement BASP Virtual Adapter donc j'aimerais que cela corresponde exactement à mon grep vous voyez ce que je veux dire?


BASP Virtual Adapter #3
BASP Virtual Adapter #2
BASP Virtual Adapter
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/04/2011, 15h56   #18
Membre habitué
 
Homme Fabrice
Lille
Inscription : février 2011
Messages : 137
Détails du profil
Informations personnelles :
Nom : Homme Fabrice
Localisation : France

Informations professionnelles :
Activité : Lille
Secteur : Services à domicile

Informations forums :
Inscription : février 2011
Messages : 137
Points : 109
Points : 109
Citation:
Envoyé par FRUiT Voir le message
LOL

Sans vouloir te froisser, je pense que ton problème est l'inverse : tu ne cherches carrément pas du tout...
je n'ai pas dis cela dans le sens de trop chercher ce que je voulais dire c'est que a chaque fois je me dis qu'il faut faire une commande a rallonge avec un awk ou autre alors que des fois il faut juste mettre des guillemet ou cote. Ensuite on à pas tous le même niveau en programmation et dans mon cas je n'ai que des bases.
fbb53 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 15h58   #19
Membre éclairé
 
Avatar de FRUiT
 
Homme
Inscription : février 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 83
Points : 326
Points : 326
J'avais compris merci L'occasion était trop belle pour ne pas te faire la remarque c'est tout. Humour humour, etc...
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
FRUiT est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 13/04/2011, 16h00   #20
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par fbb53 Voir le message
bon aller je vous sent motiver donc j'en profite

si je fais un grep 'BASP Virtual Adapter' j'obtiens 3 réponses et j'aimerai récupérer seulement BASP Virtual Adapter donc j'aimerai que cela corresponde exactement a mon grep vous voyez ce que je veux dire?


BASP Virtual Adapter #3
BASP Virtual Adapter #2
BASP Virtual Adapter
Code :
grep 'BASP Virtual Adapter$'
Si toutefois l'exemple que tu as posté est bien conforme à la réalité...
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 30
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h28.


 
 
 
 
Partenaires

Hébergement Web