Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
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 02/12/2010, 12h24   #1
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Par défaut erreur "Too many levels of symbolic links"

Hello everyone,

j'ai tapé cette ligne de commande :
Code :
cat /usr/share/dict/words | grep "ing"
et j'ai eu cette réponse :
Code :
Too many levels of symbolic links
Pourriez-vous me dire comment résoudre cette erreur ?
Bonne journée,
François
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 12h32   #2
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Ca dit quoi "ls -l /usr/share/dict/words" ?
Et ls -l sur fichier cible de /usr/share/dict/words ?
Et ls -l sur le fichier cible de ce fichier cible ?
...
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 12h58   #3
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Code :
1
2
3
4
5
6
7
8
necco@ubuntu:~/Labs/Lab3$ ls -l /usr/share/dict/words
lrwxrwxrwx 1 root root 30 2010-12-01 16:31 /usr/share/dict/words -> /etc/dictionaries-common/words
 
necco@ubuntu:~/Labs/Lab3$ ls -l /etc/dictionaries-common/words
lrwxrwxrwx 1 root root 32 2010-12-01 16:30 /etc/dictionaries-common/words -> /usr/share/dict/american-english 
 
necco@ubuntu:~/Labs/Lab3$ ls -l /usr/share/dict/american-english
lrwxrwxrwx 1 root root 30 2010-12-02 10:57 /usr/share/dict/american-english -> /etc/dictionaries-common/words
Çaboucle... Pourriez-vous me dire comment résoudre ce problème ?
Merci pour votre aide !
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 13h25   #4
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Tu peux essayer d'installer le package "wamerican", qui devrait installer le "vrai" fichier american-english. Mais je ne sais pas trop, je suis sous debian et pas sous ubuntu.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 14h08   #5
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Merci, ça fonctionne maintenant ! Bravo.

Pourriez-vous aussi m'éclaircir sur la commande grep ? La commande suivante marche, cependant pensez-vous qu'un seul grep peut suffire ?

Code :
cat /usr/share/dict/words | grep '^[aeiou]\{2\}'| grep 'ing$'
Merci encore pour votre aide.
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 15h56   #6
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Tu dois pouvoir, mais c'est compliqué à cause du i de ing qui doit aussi pouvoir partie des deux voyelles du début. Peut-être quelque chose comme ça :
Code :
grep '^\([aeiou]\{2\}.*i\|[aeou]i\)ng$' /usr/share/dict/words
Par contre le cat est inutile puisque grep peut prendre un nom de fichier (et même si ce n'était pas le cas, il serait inutile puisqu'on pourrait faire un "< /usr/share/dict/words")
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 18h31   #7
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Merci pour votre réponse.
J'ai écris un script permettant de calculer la somme d'entier tel que ./sum 2 3 4 me donne 9. Dans ce script j'utilise une boucle for prenant en compte tous les arguments possibles. J'ai cru comprendre que de tel fonction pouvait s'écrire en une ligne avec la commande sed. Pour l'instant mon script donne ceci :
Code :
1
2
3
4
5
 
#!/bin/sh
 
expr `echo $* | sed "`
exit 0
Je ne sais pas par où commencer avec la commande sed, sauriez-vous l'aider ?
Bonne soirée,
François
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 19h14   #8
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Ca fait un peu bidouille avec sed. Je ferais plutôt comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
 
s=$1
 
while [[ $# -gt 1 ]]
do
        shift
        (( s += $1 ))
done
 
echo $s
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/12/2010, 19h43   #9
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Le fait est que je débute et je n'ai pas encore appris la commande shift. On nous a demandé à titre d'intérêt personnel de réussir à écrire le script somme en utilisant le script donné comportant le sed. Le but étant d'utiliser le sed et des expressions régulières... Etant perfectionniste j'aimerai beaucoup savoir comme cela est possible, malgré mes recherches je n'ai compris comment sed pouvait sommer des paramètres en argument.
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 23h58   #10
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Puisque tu as un cas un peu particulier
Expression qui commence ( ^ ) et une qui fini ta ligne ($ ) , tu peux écrire :

Code :
1
2
 
 grep '^[aeiou]\{2\}.*ing$'  /usr/share/dict/words
Pour sommer deux expressions sans se soucier de la position, tu aurais du écrire

Code :
1
2
 
grep '([aeiou]\{2\}.*ing'|ing.*[aeiou]\{2\})'  /usr/share/dict/words
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2010, 01h57   #11
Invité de passage
 
Francois
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Francois

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 1
Points : 1
Je m'excuse je me suis mal exprimé, la somme n'a rien à voir avec ce qui précède. Je parlais d'un script qui somme des entiers. tel ./sum 2 3 me retourne 5. Dans mon script j'ai utilisé une boucle for afin de sommer tous les arguments mais il semble que l'on peut faire la même chose avec un sed. Est-ce vraiment possible ?
Necco100 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 07h19   #12
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
sed est pas du tout fait pour cela. awk par contre, tu peux lui scripter beaucoup de choses
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2010, 11h42   #13
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Citation:
Envoyé par becket Voir le message
Puisque tu as un cas un peu particulier
Expression qui commence ( ^ ) et une qui fini ta ligne ($ ) , tu peux écrire :

Code :
1
2
 
 grep '^[aeiou]\{2\}.*ing$'  /usr/share/dict/words
Justement non, pour la raison que j'ai déjà donné : l'expression initiale avec les deux grep accepte un mot commençant par une voyelle suivie de "ing" ; la tienne non, puisqu'elle demande au moins deux voyelles en début de mot.
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2010, 20h25   #14
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Effectivement, mais c'est fou le nombre de mots que l'on peut former en '^[aeiou]ing$'
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web