je voudrais solliciter votre aide pour l'écriture d'un script, permettant de réorganiser un fichier organisé en tableau genre /etc/passwd
voilà grâce à un premier script j'ai obtenu un fichier organisé comme suit :
-rwxrwxr-x 1 wwwrun www 14K Jan 18 17:21 ./ae/aetech-solutions.com/a./a.boughezala/userdb
-rwxrwxr-x 1 wwwrun www 14K Jan 31 08:09 ./ae/aetech-solutions.com/c./c.amri/userdb
-rwxrwxr-x 1 wwwrun www 14K Jan 30 17:59 ./ae/aetech-solutions.com/d./d.chabbah/userdb
-rwxrwxr-x 1 wwwrun www 14K Jan 23 15:56 ./ae/aetech-solutions.com/da/dap/userdb
-rwxrwxr-x 1 wwwrun www 16K Jan 31 08:12 ./ae/aetech-solutions.com/dc/dc1/userdb
-rwxrwxr-x 1 wwwrun www 14K Jan 18 17:22 ./ae/aetech-solutions.com/m./m.boumaiza/userdb
sachant que le séparateur étant le /, le troisième champs représente mes domaines et le 5ème les logins, je voudrais avoir un résultat dans un autre fichiers du genre login@domaine,
pour cela j'ai fait le script suivant
#!/bin/bash
while read line
do
domaine=$(cut -d/ -f3)
login=$(cut -d/ -f5)
echo "$login@$domaine" >> mail_complet
done < resultat_final
or ça ne marche pas, j'obtiens uniquement les domaines, je peux obtenir les logins et les domaines si je fais deux bocles séparées, et je mets chacun dans deux fichiers intermédiaires, mais comment les recoller par la suite pour obtenir le résultat escompté ?
bonjour à tous,<br><br>je voudrais solliciter votre aide pour l'écriture d'un script, permettant de réorganiser un fichier organisé en tableau genre /etc/passwd<br><br>voilà grâce à un premier script j'ai obtenu un fichier organisé comme suit :<br><br>-rwxrwxr-x 1 wwwrun www 14K Jan 18 17:21 ./ae/aetech-solutions.com/a./a.boughezala/userdb<br>-rwxrwxr-x 1 wwwrun www 14K Jan 31 08:09 ./ae/aetech-solutions.com/c./c.amri/userdb<br>-rwxrwxr-x 1 wwwrun www 14K Jan 30 17:59 ./ae/aetech-solutions.com/d./d.chabbah/userdb<br>-rwxrwxr-x 1 wwwrun www 14K Jan 23 15:56 ./ae/aetech-solutions.com/da/dap/userdb<br>-rwxrwxr-x 1 wwwrun www 16K Jan 31 08:12 ./ae/aetech-solutions.com/dc/dc1/userdb<br>-rwxrwxr-x 1 wwwrun www 14K Jan 18 17:22 ./ae/aetech-solutions.com/m./m.boumaiza/userdb<br><br>sachant que le séparateur étant le /, le troisième champs représente mes domaines et le 5ème les logins, je voudrais avoir un résultat dans un autre fichiers du genre
login@domaine,<br><br>pour cela j'ai fait le script suivant <br><br>#!/bin/bash<br><br>while read line<br>do<br> domaine=$(cut -d/ -f3)<br> login=$(cut -d/ -f5)<br> echo "$login@$domaine" >> mail_complet<br>done < resultat_final<br><br><br><br>or ça ne marche pas, j'obtiens uniquement les domaines, je peux obtenir les logins et les domaines si je fais deux bocles séparées, et je mets chacun dans deux fichiers intermédiaires, mais comment les recoller par la suite pour obtenir le résultat escompté ?<br><br><br>merci de m'éclaire de vos lumières :)<br><br>@+<br>
--0-1751251924-1176216861=:19894--
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques L'helgoualc'h
Tahar a écrit, mardi 10 avril 2007, à 16:54 :
bonjour à tous,
bonjour,
[...] sachant que le séparateur étant le /, le troisième champs représente mes domaines et le 5ème les logins, je voudrais avoir un résultat dans un autre fichiers du genre ,
Awk est tout indiqué quand on dispose de séparateurs fiables :
while read line do domaine=$(cut -d/ -f3) login=$(cut -d/ -f5) echo "$login@$domaine" >> mail_complet done < resultat_final
or ça ne marche pas, j'obtiens uniquement les domaines,
C'est le premier cut qui bouffe toute l'entrée standard... -- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Tahar a écrit, mardi 10 avril 2007, à 16:54 :
bonjour à tous,
bonjour,
[...] sachant que le séparateur étant le /, le troisième champs
représente mes domaines et le 5ème les logins, je voudrais avoir un
résultat dans un autre fichiers du genre login@domaine,
Awk est tout indiqué quand on dispose de séparateurs fiables :
while read line
do
domaine=$(cut -d/ -f3)
login=$(cut -d/ -f5)
echo "$login@$domaine" >> mail_complet
done < resultat_final
or ça ne marche pas, j'obtiens uniquement les domaines,
C'est le premier cut qui bouffe toute l'entrée standard...
--
Jacques L'helgoualc'h
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
[...] sachant que le séparateur étant le /, le troisième champs représente mes domaines et le 5ème les logins, je voudrais avoir un résultat dans un autre fichiers du genre ,
Awk est tout indiqué quand on dispose de séparateurs fiables :
while read line do domaine=$(cut -d/ -f3) login=$(cut -d/ -f5) echo "$login@$domaine" >> mail_complet done < resultat_final
or ça ne marche pas, j'obtiens uniquement les domaines,
C'est le premier cut qui bouffe toute l'entrée standard... -- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Émile CARRY
Le Tue, 10 Apr 2007 16:54:21 +0200 (CEST), Tahar a écrit :
bonjour à tous,
Bonjour,
or ça ne marche pas, j'obtiens uniquement les domaines, je peux obtenir les logins et les domaines si je fais deux bocles séparées, et je mets chacun dans deux fichiers intermédiaires, mais comment les recoller par la suite pour obtenir le résultat escompté ?
merci de m'éclaire de vos lumières :)
Je dirais que bash n'est peut-être pas le bon outil, c'est typiquement le cas où "awk" fait des miracles... Par exemple, en supposant que le fichier issue de ton premier script s'appelle "test" : awk -F "/" '{print $5"@"$3}' test > mails.txt
et tu auras ta liste de mails...
mil -- Nous vivons a une époque ou le superflu est notre seule nécessite. -+- Oscar Wilde -+-
Le Tue, 10 Apr 2007 16:54:21 +0200 (CEST),
Tahar a écrit :
bonjour à tous,
Bonjour,
or ça ne marche pas, j'obtiens uniquement les domaines, je peux
obtenir les logins et les domaines si je fais deux bocles séparées,
et je mets chacun dans deux fichiers intermédiaires, mais comment les
recoller par la suite pour obtenir le résultat escompté ?
merci de m'éclaire de vos lumières :)
Je dirais que bash n'est peut-être pas le bon outil, c'est typiquement
le cas où "awk" fait des miracles...
Par exemple, en supposant que le fichier issue de ton premier script
s'appelle "test" :
awk -F "/" '{print $5"@"$3}' test > mails.txt
et tu auras ta liste de mails...
mil
--
Nous vivons a une époque ou le superflu est notre seule nécessite.
-+- Oscar Wilde -+-
Le Tue, 10 Apr 2007 16:54:21 +0200 (CEST), Tahar a écrit :
bonjour à tous,
Bonjour,
or ça ne marche pas, j'obtiens uniquement les domaines, je peux obtenir les logins et les domaines si je fais deux bocles séparées, et je mets chacun dans deux fichiers intermédiaires, mais comment les recoller par la suite pour obtenir le résultat escompté ?
merci de m'éclaire de vos lumières :)
Je dirais que bash n'est peut-être pas le bon outil, c'est typiquement le cas où "awk" fait des miracles... Par exemple, en supposant que le fichier issue de ton premier script s'appelle "test" : awk -F "/" '{print $5"@"$3}' test > mails.txt
et tu auras ta liste de mails...
mil -- Nous vivons a une époque ou le superflu est notre seule nécessite. -+- Oscar Wilde -+-
Yves Rutschle
On Tue, Apr 10, 2007 at 04:54:21PM +0200, Tahar wrote:
#!/bin/bash
while read line do domaine=$(cut -d/ -f3) login=$(cut -d/ -f5) echo "$login@$domaine" >> mail_complet done < resultat_final
Attention, les 'cut' travaillent directement sur l' entrée de la boucle, au lieu de travailler sur $line.
Sinon, une méthode qui sera sans doute plus courte et efficace est d'utiliser sed, en remplaçant la ligne complète par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$//
J'ai pas dis plus facile à lire ;)
Y.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
On Tue, Apr 10, 2007 at 04:54:21PM +0200, Tahar wrote:
#!/bin/bash
while read line
do
domaine=$(cut -d/ -f3)
login=$(cut -d/ -f5)
echo "$login@$domaine" >> mail_complet
done < resultat_final
Attention, les 'cut' travaillent directement sur l' entrée
de la boucle, au lieu de travailler sur $line.
Sinon, une méthode qui sera sans doute plus courte et
efficace est d'utiliser sed, en remplaçant la ligne complète
par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$/2@1/
J'ai pas dis plus facile à lire ;)
Y.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Sinon, une méthode qui sera sans doute plus courte et efficace est d'utiliser sed, en remplaçant la ligne complète par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$//
J'ai pas dis plus facile à lire ;)
Y.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Jacques L'helgoualc'h
Yves Rutschle a écrit, mardi 10 avril 2007, à 17:18 : [...]
Sinon, une méthode qui sera sans doute plus courte et efficace est d'utiliser sed, en remplaçant la ligne complète par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$//
J'ai pas dis plus facile à lire ;)
Tu abuses de l'obfusquitude :) --- et il faut protéger ta commande...
GNUSed :
sed -nre 's,^.*/([^/]+)/[^/]+/([^/]+)/userdb$,,p'
-- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Yves Rutschle a écrit, mardi 10 avril 2007, à 17:18 :
[...]
Sinon, une méthode qui sera sans doute plus courte et
efficace est d'utiliser sed, en remplaçant la ligne complète
par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$/2@1/
J'ai pas dis plus facile à lire ;)
Tu abuses de l'obfusquitude :) --- et il faut protéger ta commande...
GNUSed :
sed -nre 's,^.*/([^/]+)/[^/]+/([^/]+)/userdb$,2@1,p'
--
Jacques L'helgoualc'h
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Sinon, une méthode qui sera sans doute plus courte et efficace est d'utiliser sed, en remplaçant la ligne complète par des bouts, réordonnés:
find . -name userdb | sed s/^.*/(.*)/.*/(.*)/userdb$//
J'ai pas dis plus facile à lire ;)
Tu abuses de l'obfusquitude :) --- et il faut protéger ta commande...
GNUSed :
sed -nre 's,^.*/([^/]+)/[^/]+/([^/]+)/userdb$,,p'
-- Jacques L'helgoualc'h
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact