Re: [HS] si mon fichier contient la premiere ligne
Lorenzo, merci pour ton annalyse, je ne construit pas le fichier, c'est une application métier. Je vais essayer de le rajouter le \n pour voir -- david martin
Re: [HS] si mon fichier contient la premiere ligne
Le Fri, Jun 02, 2017 at 09:53:25AM +0900, Charles Plessy a écrit : > > $ cat > toto3 <<__FIN__ > > ligne 1 > > ligne 2 > > ligne 3 > > __FIN__ Oups, sans les chevrons ci-dessus: $ cat > toto3 <<__FIN__ ligne 1 ligne 2 ligne 3 __FIN__ Désolé pour le bruit, (Ça doit être l'effet vendredi) -- Charles
Re: [HS] si mon fichier contient la premiere ligne
Bonjour, c'est vendredi ! pourquoi s'ennuyer avec des outils standards alors qu'on a Perl 6 ? $ cat > toto3 <<__FIN__ > ligne 1 > ligne 2 > ligne 3 > __FIN__ $ perl6 -ne 'state $i++ ; exit 1 if $i > 1' toto3 && echo "Une seule ligne." $ cat > toto1 <<__FIN__ ligne 1 __FIN__ $ perl6 -ne 'state $i++ ; exit 1 if $i > 1' toto1 && echo "Une seule ligne." Une seule ligne. Bonne fin de semaine, Conclusion, apt install perl6. Charles -- Charles Plessy Tsurumi, Kanagawa, Japan
Re: DNS dynamique
Bonjour Éric, On 06/01/2017 09:47 AM, Eric Bernard wrote: > > Je dois installer un tout nouveau serveur dns dynamique (dns + dhcp ) > en virtuel (Vmware) et j'ai quelques questions, certainement bêtes, à > l'esprit : > > - Debian 8 ou attendre la version 9 qui doit sortir mi-juin ? > > - En dehors d'installer les "open-vm-tools", y a-t-il d'autres > précautions à prendre pour une utilisation sous vmware ? > > - J'ai regardé sur le net des tutos et je dois dire que les > installations sont plus ou moins différentes l'une de l'autre, par > exemple certains fichiers de conf dans /etc/bind/ ou dans > /var/cache/bind/ ? > > Avez-vous dans vos cartons un tuto/site digne de ce nom sous la main > car ce serveur sera en prod donc... > - Personnellement j'attendrais le 17, mais il est déjà possible de préparer la configuration et de mettre en production à partir de la date de sortie. - Les open-vm-tools sont suffisants, je ne vois pas quoi installer d'autre. - Concernant le répertoire /var/cache/bind/ bind9 s'en sert en tant que cache, et non pas pour les fichiers de configuration. Le fichiers de configurations sont bien à placer dans /etc/bind/. Plus d'informations sur les répertoires sont disponibles dans la FHS [¹]. Le couplage serait donc bind9 + isc-dhcp-server ? Pour les tutos je n'ai pas recherché, mais avec une recherche du genre « bind9 isc-dhcp-server » il devrait y avoir ce qu'il faut. [¹] https://fr.wikipedia.org/wiki/Filesystem_Hierarchy_Standard Cordialement, Alban signature.asc Description: OpenPGP digital signature
Re: [HS] si mon fichier contient la premiere ligne
On Thu, Jun 01, 2017 at 02:09:46PM +0200, David Martin wrote: > Yves j'y ai cru ;-) > > alors que le fichier en contient une et une seule. J'avais testé, et "ça marche chez moi"(TM). Que te renvoie wc -l? Qu'y a-t-il dans ton fichier quand tu crois qu'il y a une ligne? Pour voir en hexa: xxd fichier.txt Y.
Re: [HS] si mon fichier contient la premiere ligne
Re' On 06/01/2017 02:35 PM, David Martin wrote: # cat supMajUserEmargos 1 utilisateur(s) EMARGOS trouv�(s), 0 mis � jour, 1 non trouv�(s) dans le LDAP, 0 mise � jour non effectu�e # vi supMajUserEmargos 1 utilisateur(s) EMARGOS trouvé(s), 0 mis à jour, 1 non trouvé(s) dans le LDAP, 0 mise à jour non effectuée le wc -l retourne 0 quoi qu'il arrive. # wc -l supMajUserEmargos cut -c 1,2 0 108 supMajUserEmargos wc: cut: Aucun fichier ou dossier de ce type wc: 1,2: Aucun fichier ou dossier de ce type 0 108 total en fait il faut le | entre wc -l supMajUserEmargos et cut -c 1,2 tu dois en fait taper wc -l supMajUserEmargos | cut -c 1,2 ce qui devrait te donner 0 supMajUserEmargos car en fait si tu ne met pas le | il te donne la commande wc -l -c supMajUserEmargos cut 1,2 et cette commande te donne le nombre de ligne -l et de bytes -c. Tu n'as pas de ligne le premier 0 parceque tu ne finis pas par un \n ton fichier. En fait wc -l compte le nombre de new line \n. Comment crees tu ton fichier? cordialement
Re: [HS] si mon fichier contient la premiere ligne
# cat supMajUserEmargos 1 utilisateur(s) EMARGOS trouv�(s), 0 mis � jour, 1 non trouv�(s) dans le LDAP, 0 mise � jour non effectu�e # vi supMajUserEmargos 1 utilisateur(s) EMARGOS trouvé(s), 0 mis à jour, 1 non trouvé(s) dans le LDAP, 0 mise à jour non effectuée le wc -l retourne 0 quoi qu'il arrive. # wc -l supMajUserEmargos cut -c 1,2 0 108 supMajUserEmargos wc: cut: Aucun fichier ou dossier de ce type wc: 1,2: Aucun fichier ou dossier de ce type 0 108 total Le 1 juin 2017 à 14:06, Lorenzo Bernardi a écrit : > > > On 06/01/2017 01:58 PM, David Martin wrote: > > Merci pour vos réponses, > > Je viens de faire le test avec la solution de Lorenzo, ça ne semble pas > fonctionner. > > dans le cas d'une ligne que renvoie > wc -l monfichier.txt? > et > wc -l monfichier.txt cut -c1,2? > > La réponse de Florian Gremiaux en *cut -d" " -f1* est plus propre on > utilise le delimiteur " "et on prend le premier champ. > Sinon la reponse de Daniel est plutot subtile et donc a utiliser en > comprenant bien ce qui se passe. > > Je viens de lire ton nouveau message on est bien d'accord que tu remplace > monfichier.txt par le nom de ton fichier. Si cela renvoie zero j'ai > l'impression que tu ne teste pas le bon fichier. > > cordialement > > L. > -- david martin
Re: [HS] si mon fichier contient la premiere ligne
Quelques solutions vite fait : $ wc -l essai 1 essai $ wc -l essai | cut -d" " -f1 1 $ cat essai | wc -l 1 $ wc -l essai | grep ^1\ *>/dev/null && echo une seule ligne une seule ligne Jean-Marc pgplJ3rzRAyqy.pgp Description: PGP signature
DNS dynamique
Bonjour la liste, Je dois installer un tout nouveau serveur dns dynamique (dns + dhcp ) en virtuel (Vmware) et j'ai quelques questions, certainement bêtes, à l'esprit : - Debian 8 ou attendre la version 9 qui doit sortir mi-juin ? - En dehors d'installer les "open-vm-tools", y a-t-il d'autres précautions à prendre pour une utilisation sous vmware ? - J'ai regardé sur le net des tutos et je dois dire que les installations sont plus ou moins différentes l'une de l'autre, par exemple certains fichiers de conf dans /etc/bind/ ou dans /var/cache/bind/ ? Avez-vous dans vos cartons un tuto/site digne de ce nom sous la main car ce serveur sera en prod donc... Merci de vos réponses !!! Eric - Saumur
Re: [HS] si mon fichier contient la premiere ligne
On 06/01/2017 01:58 PM, David Martin wrote: Merci pour vos réponses, Je viens de faire le test avec la solution de Lorenzo, ça ne semble pas fonctionner. dans le cas d'une ligne que renvoie wc -l monfichier.txt? et wc -l monfichier.txt cut -c1,2? La réponse de Florian Gremiaux en *cut -d" " -f1* est plus propre on utilise le delimiteur " "et on prend le premier champ. Sinon la reponse de Daniel est plutot subtile et donc a utiliser en comprenant bien ce qui se passe. Je viens de lire ton nouveau message on est bien d'accord que tu remplace monfichier.txt par le nom de ton fichier. Si cela renvoie zero j'ai l'impression que tu ne teste pas le bon fichier. cordialement L.
Re: [HS] si mon fichier contient la premiere ligne
avec ou sans ça ne fonctionne pas -- david martin
Re: [HS] si mon fichier contient la premiere ligne
On 06/01/2017 01:45 PM, Daniel Caillibaud wrote: [ "$(wc -l < monfichier.txt)" == "1" ] && echo 'ok' || echo 'KO' bien vu l'utilisation du < mais c'est un petit peu dangereux. Si on l'oublie pas plus rien ne passe le test. L.
Re: [HS] si mon fichier contient la premiere ligne
Yves j'y ai cru ;-) ~#wc -l supMajUserEmargos | grep -q "^1 " ; then echo "1 ligne" ; else echo "pas 1 seule ligne"; fi pas 1 seule ligne ~# alors que le fichier en contient une et une seule. Pas si simple ;-) Le 1 juin 2017 à 14:04, David Martin a écrit : > [ "$(wc -l < monfichier.txt)" == "1" ] && echo 'ok' || echo 'KO' > > Ne fonctionne pas > > > > Le 1 juin 2017 à 13:58, David Martin a écrit : > >> Merci pour vos réponses, >> >> Je viens de faire le test avec la solution de Lorenzo, ça ne semble pas >> fonctionner. >> >> Test fait avec une ligne... puis j'ai fait un echo toto >> fichier pour >> en rajouter une, toujours le meme resultat : pas bon. >> Même sur un fichier vide ça ne passe pas. >> >> >> Mon but étant de controler : >> >> si j'ai une ligne c'est bon.. si j'en ai deux pas bon, si j'en ai >> 3...;etc... pas bon... >> si j'en ai 0 pas bon >> >> 1 ligne OK >> 2 ou plus KO >> 0 KO >> >> je ne sais pas si c'est possible. >> >> Le 1 juin 2017 à 12:47, Lorenzo Bernardi > .fr> a écrit : >> >>> Bonjour, >>> >>> wc -l te donne le nombre de ligne dans un fichier typiquement >>> >>> wc -l monfichier.txt >>> >>> 1234 monfichier.txt >>> >>> donc >>> >>> wc -l monfichier.txt | cut -c1,2 te renvoie les deux premier caractere. >>> Toi tu veux "1 " pas seuluement le premier parceque sinon tout les fichier >>> dont le nombre de ligne commence par 1 passe le test. >>> >>> if [ $(wc -l monfichier.txt | cut -c1,2) -eq 1 ]; then >>> >>> echo "OK"; >>> >>> else >>> >>> echo "pas bon "; >>> >>> fi >>> >>> devrait te permettre de verifier si tu n'a qu'une ligne. $(wc -l >>> monfichier.txt | cut -c1,2) permet de recuperer dans une variable la sortie >>> de la commande wc -l monfichier.txt | cut -c1,2. >>> >>> Après bien sur cela dépend de ton shell (ici bash) >>> >>> cordialement >>> >>> L. >>> >>> On 06/01/2017 12:19 PM, David Martin wrote: >>> >>> Bonjour à tous, >>> >>> C'est tout bête mais je ne vois pas comment je peux faire un controle >>> sur une ligne. >>> >>> J'ai un fichier, dans lequel je génére une ligne d'éxécution (un >>> resultat d'un bash), si j'en ai plusieurs >>> c'est que j'ai un problème dans l'éxécution de mon script. >>> >>> Comment puis-je faire pour controler si j'ai strictement et seulement >>> une seule ligne dans ce fichier, >>> mais si j'en ai plusieurs ça ne va pas ? >>> >>> echo "c'est bon" >>> >>> >>> echo "c'est pas bon" >>> >>> Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas >>> ça dont j'ai besoin >>> >>> Si vous avez une idée ? >>> >>> >>> -- >>> david martin >>> >>> >>> >> >> >> -- >> david martin >> >> > > > -- > david martin > > -- david martin
Re: [HS] si mon fichier contient la premiere ligne
[ "$(wc -l < monfichier.txt)" == "1" ] && echo 'ok' || echo 'KO' Ne fonctionne pas Le 1 juin 2017 à 13:58, David Martin a écrit : > Merci pour vos réponses, > > Je viens de faire le test avec la solution de Lorenzo, ça ne semble pas > fonctionner. > > Test fait avec une ligne... puis j'ai fait un echo toto >> fichier pour en > rajouter une, toujours le meme resultat : pas bon. > Même sur un fichier vide ça ne passe pas. > > > Mon but étant de controler : > > si j'ai une ligne c'est bon.. si j'en ai deux pas bon, si j'en ai > 3...;etc... pas bon... > si j'en ai 0 pas bon > > 1 ligne OK > 2 ou plus KO > 0 KO > > je ne sais pas si c'est possible. > > Le 1 juin 2017 à 12:47, Lorenzo Bernardi > a écrit : > >> Bonjour, >> >> wc -l te donne le nombre de ligne dans un fichier typiquement >> >> wc -l monfichier.txt >> >> 1234 monfichier.txt >> >> donc >> >> wc -l monfichier.txt | cut -c1,2 te renvoie les deux premier caractere. >> Toi tu veux "1 " pas seuluement le premier parceque sinon tout les fichier >> dont le nombre de ligne commence par 1 passe le test. >> >> if [ $(wc -l monfichier.txt | cut -c1,2) -eq 1 ]; then >> >> echo "OK"; >> >> else >> >> echo "pas bon "; >> >> fi >> >> devrait te permettre de verifier si tu n'a qu'une ligne. $(wc -l >> monfichier.txt | cut -c1,2) permet de recuperer dans une variable la sortie >> de la commande wc -l monfichier.txt | cut -c1,2. >> >> Après bien sur cela dépend de ton shell (ici bash) >> >> cordialement >> >> L. >> >> On 06/01/2017 12:19 PM, David Martin wrote: >> >> Bonjour à tous, >> >> C'est tout bête mais je ne vois pas comment je peux faire un controle sur >> une ligne. >> >> J'ai un fichier, dans lequel je génére une ligne d'éxécution (un resultat >> d'un bash), si j'en ai plusieurs >> c'est que j'ai un problème dans l'éxécution de mon script. >> >> Comment puis-je faire pour controler si j'ai strictement et seulement une >> seule ligne dans ce fichier, >> mais si j'en ai plusieurs ça ne va pas ? >> >> echo "c'est bon" >> >> >> echo "c'est pas bon" >> >> Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas ça >> dont j'ai besoin >> >> Si vous avez une idée ? >> >> >> -- >> david martin >> >> >> > > > -- > david martin > > -- david martin
Re: [HS] si mon fichier contient la premiere ligne
wc -l monfichier.txt | cut -c1,2 me retourne toujours 0 Daniel, je test ta solution -- david martin
Re: [HS] si mon fichier contient la premiere ligne
Merci pour vos réponses, Je viens de faire le test avec la solution de Lorenzo, ça ne semble pas fonctionner. Test fait avec une ligne... puis j'ai fait un echo toto >> fichier pour en rajouter une, toujours le meme resultat : pas bon. Même sur un fichier vide ça ne passe pas. Mon but étant de controler : si j'ai une ligne c'est bon.. si j'en ai deux pas bon, si j'en ai 3...;etc... pas bon... si j'en ai 0 pas bon 1 ligne OK 2 ou plus KO 0 KO je ne sais pas si c'est possible. Le 1 juin 2017 à 12:47, Lorenzo Bernardi a écrit : > Bonjour, > > wc -l te donne le nombre de ligne dans un fichier typiquement > > wc -l monfichier.txt > > 1234 monfichier.txt > > donc > > wc -l monfichier.txt | cut -c1,2 te renvoie les deux premier caractere. > Toi tu veux "1 " pas seuluement le premier parceque sinon tout les fichier > dont le nombre de ligne commence par 1 passe le test. > > if [ $(wc -l monfichier.txt | cut -c1,2) -eq 1 ]; then > > echo "OK"; > > else > > echo "pas bon "; > > fi > > devrait te permettre de verifier si tu n'a qu'une ligne. $(wc -l > monfichier.txt | cut -c1,2) permet de recuperer dans une variable la sortie > de la commande wc -l monfichier.txt | cut -c1,2. > > Après bien sur cela dépend de ton shell (ici bash) > > cordialement > > L. > > On 06/01/2017 12:19 PM, David Martin wrote: > > Bonjour à tous, > > C'est tout bête mais je ne vois pas comment je peux faire un controle sur > une ligne. > > J'ai un fichier, dans lequel je génére une ligne d'éxécution (un resultat > d'un bash), si j'en ai plusieurs > c'est que j'ai un problème dans l'éxécution de mon script. > > Comment puis-je faire pour controler si j'ai strictement et seulement une > seule ligne dans ce fichier, > mais si j'en ai plusieurs ça ne va pas ? > > echo "c'est bon" > > > echo "c'est pas bon" > > Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas ça > dont j'ai besoin > > Si vous avez une idée ? > > > -- > david martin > > > -- david martin
Re: [HS] si mon fichier contient la premiere ligne
Le 01/06/17 à 12:47, Lorenzo Bernardi a écrit : LB> Bonjour, LB> LB> wc -l te donne le nombre de ligne dans un fichier typiquement LB> LB> wc -l monfichier.txt LB> LB> 1234 monfichier.txt et wc -l < monfichier.txt => 1234 LB> donc LB> LB> wc -l monfichier.txt | cut -c1,2 te renvoie les deux premier caractere. LB> Toi tu veux "1 " pas seuluement le premier parceque sinon tout les LB> fichier dont le nombre de ligne commence par 1 passe le test. LB> LB> if [ $(wc -l monfichier.txt | cut -c1,2) -eq 1 ]; then plus court avec [ "$(wc -l < monfichier.txt)" == "1" ] && echo 'ok' || echo 'KO' -- Daniel On reconnaît un grand enseignant au nombre d'élèves qui l'ont dépassé.
Re: [HS] si mon fichier contient la premiere ligne
Bonjour, wc -l te donne le nombre de ligne dans un fichier typiquement wc -l monfichier.txt 1234 monfichier.txt donc wc -l monfichier.txt | cut -c1,2 te renvoie les deux premier caractere. Toi tu veux "1 " pas seuluement le premier parceque sinon tout les fichier dont le nombre de ligne commence par 1 passe le test. if [ $(wc -l monfichier.txt | cut -c1,2) -eq 1 ]; then echo "OK"; else echo "pas bon "; fi devrait te permettre de verifier si tu n'a qu'une ligne. $(wc -l monfichier.txt | cut -c1,2) permet de recuperer dans une variable la sortie de la commande wc -l monfichier.txt | cut -c1,2. Après bien sur cela dépend de ton shell (ici bash) cordialement L. On 06/01/2017 12:19 PM, David Martin wrote: Bonjour à tous, C'est tout bête mais je ne vois pas comment je peux faire un controle sur une ligne. J'ai un fichier, dans lequel je génére une ligne d'éxécution (un resultat d'un bash), si j'en ai plusieurs c'est que j'ai un problème dans l'éxécution de mon script. Comment puis-je faire pour controler si j'ai strictement et seulement une seule ligne dans ce fichier, mais si j'en ai plusieurs ça ne va pas ? echo "c'est bon" echo "c'est pas bon" Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas ça dont j'ai besoin Si vous avez une idée ? -- david martin
Re: [HS] si mon fichier contient la premiere ligne
Bonjour, La commande suivante devrait suffire: if [ $( wc -l | cut -d" " -f1 ) -eq 1 ]; then echo "OK"; else echo "NOK";fi Cordialement De: "David Martin" À: "debian-user-french@lists.debian.org French" Envoyé: Jeudi 1 Juin 2017 12:19:10 Objet: [HS] si mon fichier contient la premiere ligne Bonjour à tous, C'est tout bête mais je ne vois pas comment je peux faire un controle sur une ligne. J'ai un fichier, dans lequel je génére une ligne d'éxécution (un resultat d'un bash), si j'en ai plusieurs c'est que j'ai un problème dans l'éxécution de mon script. Comment puis-je faire pour controler si j'ai strictement et seulement une seule ligne dans ce fichier, mais si j'en ai plusieurs ça ne va pas ? echo "c'est bon" echo "c'est pas bon" Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas ça dont j'ai besoin Si vous avez une idée ? -- david martin
Re: [HS] si mon fichier contient la premiere ligne
On Thu, Jun 01, 2017 at 12:19:10PM +0200, David Martin wrote: > Comment puis-je faire pour controler si j'ai strictement et seulement une > seule ligne dans ce fichier, `wc -l` compte le nombre de lignes, donc: if wc -l fichier | grep -q "^1 " ; then echo "1 ligne" ; else echo "pas 1 seule ligne"; fi Y.
[HS] si mon fichier contient la premiere ligne
Bonjour à tous, C'est tout bête mais je ne vois pas comment je peux faire un controle sur une ligne. J'ai un fichier, dans lequel je génére une ligne d'éxécution (un resultat d'un bash), si j'en ai plusieurs c'est que j'ai un problème dans l'éxécution de mon script. Comment puis-je faire pour controler si j'ai strictement et seulement une seule ligne dans ce fichier, mais si j'en ai plusieurs ça ne va pas ? echo "c'est bon" echo "c'est pas bon" Je pourrais faire un controle si il est vide ou pas, mais ce n'est pas ça dont j'ai besoin Si vous avez une idée ? -- david martin