Découpage lignes en shell
Fermé
maI
-
25 mai 2005 à 14:13
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 mai 2005 à 17:15
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 mai 2005 à 17:15
A voir également:
- Découpage lignes en shell
- Découpage pdf - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Partager photos en ligne - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Site de vente en ligne particulier - Guide
18 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
25 mai 2005 à 14:25
25 mai 2005 à 14:25
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...
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...
"isolé" la ligne 1 puis filtrer les infos. Puis la ligne2...
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
25 mai 2005 à 14:44
25 mai 2005 à 14:44
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.
Faut voir ce que tu veux faire, car peut-être n'es tu pas obligé 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?
Enfin bon je vais essayer de comprendre. juste une chose (un peu stupide): comment est-ce que je lance un script sous Unix?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
25 mai 2005 à 14:50
25 mai 2005 à 14:50
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
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?
Où dois-je mettre le $sh nomduscript.sh ?
si je met #!/bin/bash ça au début de mon script ça fait quoi?
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
25 mai 2005 à 15:02
25 mai 2005 à 15:02
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
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
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...
Il faut que j'isole chaque lignes... ou il me faut un moyen de traiter chaque lignes, une par une...
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
25 mai 2005 à 15:11
25 mai 2005 à 15:11
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 ?
non ?
Je sais pas...
J'arrive pas a la faire fonctionner correctement cette commande...
Faut que je regarde un peu plus
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 !
awk '{ print $1}' /fichier_info
Il me sort toute la première colone alors que moi je voudrai seulment la 1ere ligne !
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
25 mai 2005 à 15:55
25 mai 2005 à 15:55
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 ?
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 ?
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
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
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
26 mai 2005 à 10:12
26 mai 2005 à 10:12
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....
Je dois commencer à devenir chiant à force de demander tout....
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
26 mai 2005 à 10:44
26 mai 2005 à 10:44
Tout en haut du post, tu as une case à cocher ;-))
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...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
26 mai 2005 à 11:02
26 mai 2005 à 11:02
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)???
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
26 mai 2005 à 11:10
26 mai 2005 à 11:10
Il n'est pas membre ;)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
26 mai 2005 à 11:27
26 mai 2005 à 11:27
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
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
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
26 mai 2005 à 11:41
26 mai 2005 à 11:41
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...
Ceci dit faudrait redemander à Jeff s'il a mis au point cette histoire de mot de passe finalement...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
26 mai 2005 à 11:47
26 mai 2005 à 11:47
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.
Ben finalement t'es le mieux placé pour ça ;-))))
Merci d'avance.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
26 mai 2005 à 11:13
26 mai 2005 à 11:13
lol. Faudrait qu'il s'enregistre alors :o) C'est pas pour le temps que ça prend :)