rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Découpage lignes en shell

Posté par maI, le mercredi 25 mai 2005 à 14:13:52
Salut, J'ai encore un probleme.... ça commence à en faire beaucoup !
Bon en fait je voudrais récupérer les infos des partitions sous Unix:
Jusqu'ici j'ai réussi à faire df -k (bravo!!!) puis récupérer le nom des disques (hdx...) grâce à "awk" et "grep". le problème c'est que je voudrais récupérer ces infos lignes par lignes:
Pour hd1: le nom, la taille, espace occupé... PUIS pour hd2...
Il faudrait que je prenne une seul ligne en compte à la fois...
Si c'est pas clair dites le moi, je réexpliquerai.
Merci
Configuration: AIX v5.1
Répondre à maI  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le mercredi 25 mai 2005 à 14:25:58
Tu veux faire quoi exactement. En général il suffit de traiter l'ensemble de tes lignes à l'aide d'un pipe | pour traiter tout le "texte" d'un coup

Exemple :
df | grep hd | wc -l

Compte le nombre de partitions sur disque ide...
Répondre à mamiemando

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 14:33:36
En fait je veux récupérer les infos ligne par ligne obligatoirement:
"isolé" la ligne 1 puis filtrer les infos. Puis la ligne2...
Répondre à maI

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le mercredi 25 mai 2005 à 14:44:59
Tu peux alors essayer de passer par un fichier.
Voici un extrait d'un petit script que j'ai fait qui lit 3 entiers par lignes.

if [ ! $# = 2 ]; then
    echo "usage : $0 filename indice_as"
    exit
fi
if [ ! -e $1 ]; then
    echo "Le fichier $1 n'existe pas..."
else
    if [ ! -f $1 ]; then
        echo "$1 n'est pas un fichier valide"
    else
        egrep "la regexp caractèrisant une ligne bien formée" $1 | while true
        do
            read ligne
            #cette ligne permet d'affecter à $1... $3 les arguments de la ligne
            set -- $ligne  
            ....
        done
    fi
fi


Faut voir ce que tu veux faire, car peut-être n'es tu pas obligé de passer par un fichier ?
Répondre à mamiemando

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 14:47:47
C'est bien compliqué tous ça...
Enfin bon je vais essayer de comprendre. juste une chose (un peu stupide): comment est-ce que je lance un script sous Unix?
Répondre à maI

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le mercredi 25 mai 2005 à 14:50:39
L'extension attribuée à un script shell est géneralement .sh

Methode 1 :

$ sh lescript.sh

Si tu as les Méthode 2 :
Mets en exécution.
Rajoute au début du fichier un :
#!/bin/bash
Puis lance-le
$ ./lescript.sh
Répondre à mamiemando

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 14:56:30
Désolé de t'embêter encore mais j'ai pas tous compris:
Où dois-je mettre le $sh nomduscript.sh ?
si je met #!/bin/bash ça au début de mon script ça fait quoi?
Répondre à maI

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le mercredi 25 mai 2005 à 15:02:41
Sinon toujours par sed:

df |sed -n 's#\(^/dev/[^ ]*\)\ *\([0-9]*\)\ *\([0-9]*\)\ *\([0-9]*\).*#\1|\2|\3|\4#p'

Tu obtiendras une sortie avec pour chaque device:
nom_du_device|size|use|available simplement traitable par la suite Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 15:06:14
Merci de ta réponse mais le probleme est le même:
Il faut que j'isole chaque lignes... ou il me faut un moyen de traiter chaque lignes, une par une...
Répondre à maI

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le mercredi 25 mai 2005 à 15:11:38
Ben je vois pas de probléme, tu peux traiter ligne par ligne dans sed directement, ou laisser telquel(separateur de champ "|" bien défini.) et traiter (toujourts ligne par ligne) dans awk.

non ? Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 15:20:50
Je sais pas...
J'arrive pas a la faire fonctionner correctement cette commande...
Faut que je regarde un peu plus
Répondre à maI

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 15:35:20
Hé non ça ne va pas... quand je fais:
awk '{ print $1}' /fichier_info

Il me sort toute la première colone alors que moi je voudrai seulment la 1ere ligne !
Répondre à maI

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le mercredi 25 mai 2005 à 15:55:57
Ben c'est bien ce que fait awk :)

Il t'affiches pour chaque ligne le champ 1, si toi c'est juste la ligne que tu veux, il faut que tu te serve tout simplement de head et tail

head -1 fichier (premiere ligne)
head -2 fichier |tail -1(seconde ligne, etc.)

Mais c'est assez fastidieux si tu ne connais pas le nombre de ligne a l'avance.

PS: Si tu nous mettais un exmple, 2-3 lignes en entrées, et 2-3 lignes en sortie ? Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le mercredi 25 mai 2005 à 16:05:28
Désolé pour toutes les conneries que je dis...
en fait la commande awk devrait être parfaite pour ce que j'ai à faire, c'est seulement que je l'utilisais mal... Théoriquement je ne devrai plus avoir de problème...
MERCI
Répondre à maI

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le jeudi 26 mai 2005 à 10:12:16
Merci de clore tes sujets quand ils sont résolus ;o)
Répondre à mamiemando

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le jeudi 26 mai 2005 à 10:41:44
Je veux bien clore mes sujets mais je sais pas comment on fait...
Je dois commencer à devenir chiant à force de demander tout....
Répondre à maI

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 10:44:56
Tout en haut du post, tu as une case à cocher ;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le jeudi 26 mai 2005 à 10:58:54
Je vous assure que je ne le fais pas exprès mais je vois pas la case à cocher... pourtant je n'ai pas de probleme de vue enfin je crois...
Répondre à maI

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 11:02:40
Tu n'as pas ça en haut de ton post :
Appréciation du fil de discussion
Dans l'optique de l'amélioration de la qualité des échanges sur le forum, merci d'indiquer si le fil de discussion ci-dessous vous a permis ou non de répondre à votre attente :

Problème non résolu (merci de poster un complément d'information pour faire remonter le fil de discussion)
Problème résolu (merci de poster un message récapitulant la solution)
??? Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le jeudi 26 mai 2005 à 11:10:31
Il n'est pas membre ;)
Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 11:27:42
Ben il me semblait que lorsque le "Jcheff" a mis ça en place il a fait en sorte que même les non-membres puissent cocher la case !!!
Et ça alors : http://www.commentcamarche.net/forum/affich-1530502
Il a fait comment pour valider ???
Le message du Jcheff :
Pour les utilisateurs anonymes, je pense que je leur donnerais la possibilité de choisir un mot de passe pour le POST, en l'absence de mot de passe j'en créerai un, en leur demandant de noter ce numéro de suivi du message. Ils auront la possibilité de dire s'ils sont satisfait ou non des réponses apportées.
http://www.commentcamarche.net/forum/affich-1245575 Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le jeudi 26 mai 2005 à 11:41:46
Ha oui, trés bonne question ça, y'a sans doute un moyen puisque ça a été fait :)

Ceci dit faudrait redemander à Jeff s'il a mis au point cette histoire de mot de passe finalement... Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 11:47:42
Ceci dit faudrait redemander à Jeff s'il a mis au point cette histoire de mot de passe finalement...
Ben finalement t'es le mieux placé pour ça ;-))))
Merci d'avance. Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le jeudi 26 mai 2005 à 14:18:54
Je suis formel, un non membre ne peux pas :(
Mais alors, y'a un mystere... Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 14:25:21
Mets "le poule" sur l'affaire alors, c'est de son domaine ;-DDD

Le cas n'est pas unique :
http://www.commentcamarche.net/forum/affich-1545739
http://www.commentcamarche.net/forum/affich-1547510
http://www.commentcamarche.net/forum/affich-1543557
http://www.commentcamarche.net/forum/affich-1210108 Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

27


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jeff, le jeudi 26 mai 2005 à 16:15:29
Les non membres peuvent demander à recevoir les réponses par mail et ils ont alors un lien avec un code unique permettant de marquer le problème comme résolu !
Webmaster(@)CommentCaMarche.net
Répondre à Jeff

28


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le jeudi 26 mai 2005 à 16:29:18
Ok, merci, c'est plus clair comme ça ;-) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

29


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
asevere, le jeudi 26 mai 2005 à 17:08:05
Arf, le seul truc que j'ai pas testé biensur! :D
Une belette, un lapin !?
C'est pas normal!
Répondre à asevere

30


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 jipicy, le jeudi 26 mai 2005 à 17:15:04
C'est quoi la "punition " d'un modo dans ce cas là ? ;-DDDDDD Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
maI, le jeudi 26 mai 2005 à 11:13:02
Bon ben j'imagine que je ne pourrai pas clore le sujet sauf si je m'inscrits...
Je vais voir.
En tout cas merci pour toutes vos réponses
Répondre à maI

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mamiemando, le jeudi 26 mai 2005 à 11:13:54
lol. Faudrait qu'il s'enregistre alors :o) C'est pas pour le temps que ça prend :)
Répondre à mamiemando