Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 04-02-2015 18:22:08

Orsam999
Membre
Distrib. : Debian GNU/Linux 7.9 (wheezy)
Noyau : Linux 3.2.0-4-486
Inscription : 16-01-2015

[Résolu] Fonction Cut comment compter ??

Bonjour à tous,

Je suis tombé sur une fonction très utile, qui est en faite un espèce d'explode (en PHP) ou Split (en Javascript)

La voici :


IN="bla@some.com;john@home.com;toto@cmon.fr"
mavar=`echo $IN | cut -d \; -f 1`  # Le 1 correspond au premier param
mavar2=`echo $IN | cut -d \; -f 2` # Le 2 correspond au deuxième param
mavar3=`echo $IN | cut -d \; -f 3` # Le 3 correspond au troisième param
echo $mavar #Affichage de la première valeur, ici bla@some.com
 



Je suis d'accord avec cette curieuse façon de faire, mais comment savoir combien d'adresse mail sont présentent dans la chaine ?? hmm

Merci d'avance pour votre aide.

Orsam

Dernière modification par Orsam999 (04-02-2015 18:41:35)


Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius

Hors ligne

#2 04-02-2015 18:41:16

Orsam999
Membre
Distrib. : Debian GNU/Linux 7.9 (wheezy)
Noyau : Linux 3.2.0-4-486
Inscription : 16-01-2015

Re : [Résolu] Fonction Cut comment compter ??

Re-bonjour,


Voici une auto réponse (encore une big_smile)


J'ai finalement opté pour la commande awk :

awk -F":" '{print $1}' /etc/passwd



pour le deuxième param :

awk -F":" '{print $2}' /etc/passwd



etc...

Pour le nombre de param :

awk -F":" '{print NF}' /etc/passwd
 



Pour les chaines de caractères :

echo "abc:def" | awk -F':' '{print NF}'




Source du code :

http://www.commandeslinux.fr/awk/

Merci.

Orsam

Dernière modification par Orsam999 (04-02-2015 18:46:40)


Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius

Hors ligne

#3 04-02-2015 18:59:47

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu] Fonction Cut comment compter ??

bonjour
Utiliser awk est une excellente solution pour ce genre de problème. Je te propose une solution en pure bash ce qui est
assez amusant wink :


#! /bin/bash

IN="bla@some.com;john@home.com;toto@cmon.fr"
IFS=';'
declare -a EMAILS
EMAILS=(${IN})
echo "Nombre d'emails : ${#EMAILS[@]}"
echo ${EMAILS[@]}
 


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#4 05-02-2015 15:56:26

Orsam999
Membre
Distrib. : Debian GNU/Linux 7.9 (wheezy)
Noyau : Linux 3.2.0-4-486
Inscription : 16-01-2015

Re : [Résolu] Fonction Cut comment compter ??

Bonjour Enicar,

Merci, ta solution fonctionne très bien aussi, mais le côté "amusant" est à quelle ligne ??? big_smile


Merci

Orsam !!

Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius

Hors ligne

#5 05-02-2015 16:01:00

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu] Fonction Cut comment compter ??

Salut,
On s'amuse comme on peut, hein wink

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

Pied de page des forums