Re: [HS] si mon fichier contient la premiere ligne

2017-06-01 Par sujet David Martin
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

2017-06-01 Par sujet Charles Plessy
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

2017-06-01 Par sujet Charles Plessy
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

2017-06-01 Par sujet Alban Vidal
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

2017-06-01 Par sujet Yves Rutschle
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

2017-06-01 Par sujet Lorenzo Bernardi

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

2017-06-01 Par sujet David Martin
# 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

2017-06-01 Par sujet Jean-Marc
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

2017-06-01 Par sujet Eric Bernard

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

2017-06-01 Par sujet Lorenzo Bernardi



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

2017-06-01 Par sujet David Martin
avec ou sans ça ne fonctionne pas


-- 
david martin


Re: [HS] si mon fichier contient la premiere ligne

2017-06-01 Par sujet Lorenzo Bernardi



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

2017-06-01 Par sujet David Martin
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

2017-06-01 Par sujet David Martin
[ "$(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

2017-06-01 Par sujet David Martin
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

2017-06-01 Par sujet David Martin
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

2017-06-01 Par sujet Daniel Caillibaud
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

2017-06-01 Par sujet Lorenzo Bernardi

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

2017-06-01 Par sujet Florian Gremiaux
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

2017-06-01 Par sujet Yves Rutschle
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

2017-06-01 Par sujet David Martin
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