Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 24/03/2016, à 15:16

pingouinux

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

Une ligne donnée contient-elle uniquement des nombres à 2 chiffres ou uniquement des nombres à 3 chiffres ?
Si oui, comment distingue-t-on les deux types de lignes ?

Hors ligne

#27 Le 24/03/2016, à 17:46

Wolf

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

La première ligne contient uniquement des nombres à 2 chiffres.

La second ligne contient uniquement des nombres à 3 chiffres.

Je pense qu'il n'y a pas de distinction mais un traitement différent si ligne 1 ou ligne 3

Dans le script actuel, cela se traduit comme ceci :

# on recupere la ligne de chiffre (dans mon exemple, la 1°) dans la variable $stuff
stuff="$(awk 'NR==1' "comptes")"

# recupere la ligne 3 dans la var $stuff3
stuff3="$(awk 'NR==3' "comptes")"

"On a pas besoin de leurs dollars. Juste des rêves et sa guitare".

Hors ligne

#28 Le 24/03/2016, à 18:31

pingouinux

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

Pas très joli

$ printf "toto33-%s-z\n" $(grep -o '..' <(awk 'NR==1' comptes))
toto33-61-z
toto33-78-z
toto33-69-z
toto33-91-z
toto33-89-z
$ printf "toto33-%s-z\n" $(grep -o '...' <(awk 'NR==3' comptes))
toto33-107-z
toto33-115-z
toto33-103-z

Ajouté : Et pour trier le tout

$ printf "toto33-%s-z\n" $(sort -n <(grep -o '..' <(awk 'NR==1' comptes)) <(grep -o '...' <(awk 'NR==3' comptes)))
toto33-61-z
toto33-69-z
toto33-78-z
toto33-89-z
toto33-91-z
toto33-103-z
toto33-107-z
toto33-115-z

Dernière modification par pingouinux (Le 24/03/2016, à 18:38)

Hors ligne

#29 Le 25/03/2016, à 10:41

Wolf

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

@pingouinux
Wahou.
Tu as réussi à résumer le script en une seule ligne du coup ! Balèze !
En tout cas, cela semble fonctionner.
Un grand merci à toi, tu es trop fort.
Je suis preneur de quelques explications par contre smile J'aime comprendre ce que j'utilise ..


"On a pas besoin de leurs dollars. Juste des rêves et sa guitare".

Hors ligne

#30 Le 25/03/2016, à 11:08

pingouinux

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

Chacun des awk récupère une des lignes qui nous intéressent, qui est ensuite découpée en groupes de 2 ou 3 caractères par les grep.
sort -n réalise un tri numérique sur l'ensemble des sorties précédentes.
printf permet de formater le résultat.

On peut faire plus simple, avec sed qui va sélectionner et découper les lignes en une seule étape.

$ printf "toto33-%s-z\n" $(sort -n <(sed -n '1s/../&\n/gp;3s/.../&\n/gp' comptes))
toto33-61-z
toto33-69-z
toto33-78-z
toto33-89-z
toto33-91-z
toto33-103-z
toto33-107-z
toto33-115-z

Hors ligne

#31 Le 25/03/2016, à 11:51

Wolf

Re : [R]Ptit script pour generer un fichier dependant d'un autre ..

C'est déjà très bien et cela me conviens parfaitement.
J'aime les ptits scripts qui facilitent le quotidien.

Un grand merci à toi, je passe en Résolu smile


"On a pas besoin de leurs dollars. Juste des rêves et sa guitare".

Hors ligne