|
|
|
|
Configuration: AIX v5.1
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... |
En fait je veux récupérer les infos ligne par ligne obligatoirement:
"isolé" la ligne 1 puis filtrer les infos. Puis la ligne2... |
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 ? |
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? |
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 |
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? |
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! |
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... |
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! |
Je sais pas...
J'arrive pas a la faire fonctionner correctement cette commande... Faut que je regarde un peu plus |
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 !
|
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 |
Merci de clore tes sujets quand ils sont résolus ;o) |
Je veux bien clore mes sujets mais je sais pas comment on fait...
Je dois commencer à devenir chiant à force de demander tout.... |
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é. |
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... |
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é.
|
lol. Faudrait qu'il s'enregistre alors :o) C'est pas pour le temps que ça prend :) |
| 05/01 18h57 | Sed - Supprimer une ou plusieurs lignes d'un fichier | Sed |
| 23/03 20h06 | Sed - Insérer des espacements | Sed |
| 14/11 11h46 | [Shell] Accès aux dernières commandes de l'historique | Shell |
| 29/12 20h42 | Guide d'utilisation du Shell pour débutant |