C'est tout b=C3=AAte mais je ne vois pas comment je peux faire un controle =
sur
une ligne.
J'ai un fichier, dans lequel je g=C3=A9n=C3=A9re une ligne d'=C3=A9x=C3=A9c=
ution (un resultat
d'un bash), si j'en ai plusieurs
c'est que j'ai un probl=C3=A8me dans l'=C3=A9x=C3=A9cution 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 =C3=A7a 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 =C3=
=A7a
dont j'ai besoin
<div dir=3D"ltr">Bonjour =C3=A0 tous,<div><br></div><div>C'est tout b=
=C3=AAte mais je ne vois pas comment je peux faire un controle sur une lign=
e.</div><div><br></div><div>J'ai un fichier, dans lequel je g=C3=A9n=C3=
=A9re une ligne d'=C3=A9x=C3=A9cution (un resultat d'un bash), si j=
'en ai plusieurs</div><div>c'est que j'ai un probl=C3=A8me dans=
l'=C3=A9x=C3=A9cution de mon script.</div><div><br></div><div>Comment =
puis-je faire pour controler si j'ai strictement et seulement une seule=
ligne dans ce fichier,</div><div>mais si j'en ai plusieurs =C3=A7a ne =
va pas ?</div><div><br></div><div>echo "c'est bon"</div><div>=
<br></div><div><br></div><div>echo "c'est pas bon"</div><div>=
<br></div><div>Je pourrais faire un controle si il est vide ou pas, mais ce=
n'est pas =C3=A7a dont j'ai besoin</div><div><br></div><div>Si vou=
s avez une id=C3=A9e ?</div><div><br></div><div><div><br></div>-- <br><div =
class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"lt=
r">david martin<div><br></div></div></div>
</div></div>
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.
Daniel Caillibaud
Le 01/06/17 à 12:47, Lorenzo Bernardi r> 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'on t dépassé.
Le 01/06/17 à 12:47, Lorenzo Bernardi <lorenzo.bernardi@c2n.upsaclay.f r> 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
Le 01/06/17 à 12:47, Lorenzo Bernardi r> 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'on t dépassé.
David Martin
--001a114a7370a66e7d0550e4ccb4 Content-Type: text/plain; charset="UTF-8" wc -l monfichier.txt | cut -c1,2 me retourne toujours 0 Daniel, je test ta solution -- david martin --001a114a7370a66e7d0550e4ccb4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr"><div>wc -l monfichier.txt | cut -c1,2</div><div><br></div> <div>me retourne toujours 0</div><div><br></div><div>Daniel, je test ta sol ution</div><div><br></div><div class="gmail_extra"><div><br></div>-- <br> <div class="gmail_signature" data-smartmail="gmail_signature"><div dir ="ltr">david martin<div><br></div></div></div> </div></div> --001a114a7370a66e7d0550e4ccb4--
<div dir="ltr"><div>wc -l monfichier.txt | cut -c1,2</div><div><br></div> <div>me retourne toujours 0</div><div><br></div><div>Daniel, je test ta sol ution</div><div><br></div><div class="gmail_extra"><div><br></div>-- <br> <div class="gmail_signature" data-smartmail="gmail_signature"><div dir ="ltr">david martin<div><br></div></div></div>
</div></div>
--001a114a7370a66e7d0550e4ccb4 Content-Type: text/plain; charset="UTF-8" wc -l monfichier.txt | cut -c1,2 me retourne toujours 0 Daniel, je test ta solution -- david martin --001a114a7370a66e7d0550e4ccb4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr"><div>wc -l monfichier.txt | cut -c1,2</div><div><br></div> <div>me retourne toujours 0</div><div><br></div><div>Daniel, je test ta sol ution</div><div><br></div><div class="gmail_extra"><div><br></div>-- <br> <div class="gmail_signature" data-smartmail="gmail_signature"><div dir ="ltr">david martin<div><br></div></div></div> </div></div> --001a114a7370a66e7d0550e4ccb4--
bien vu l'utilisation du < mais c'est un petit peu dangereux. Si on l'oublie pas plus rien ne passe le test. L.
David Martin
--001a1140189ec797f50550e50c5f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable avec ou sans ça ne fonctionne pas -- david martin --001a1140189ec797f50550e50c5f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr">avec ou sans ça ne fonctionne pas<div class="gmail_ extra"><br clear="all"><div><br></div>-- <br><div class="gmail_signatur e" data-smartmail="gmail_signature"><div dir="ltr">david martin<div><br ></div></div></div> </div></div> --001a1140189ec797f50550e50c5f--
<div dir="ltr">avec ou sans ça ne fonctionne pas<div class="gmail_ extra"><br clear="all"><div><br></div>-- <br><div class="gmail_signatur e" data-smartmail="gmail_signature"><div dir="ltr">david martin<div><br ></div></div></div>
</div></div>
--001a1140189ec797f50550e50c5f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable avec ou sans ça ne fonctionne pas -- david martin --001a1140189ec797f50550e50c5f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr">avec ou sans ça ne fonctionne pas<div class="gmail_ extra"><br clear="all"><div><br></div>-- <br><div class="gmail_signatur e" data-smartmail="gmail_signature"><div dir="ltr">david martin<div><br ></div></div></div> </div></div> --001a1140189ec797f50550e50c5f--
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'
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?
# 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
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.
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
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.
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
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.
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
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
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__
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
David Martin
--94eb2c1ab3e242b9390550f491ed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 --94eb2c1ab3e242b9390550f491ed Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Lore nzo,</div><div class="gmail_quote"><br></div><div class="gmail_quote">m erci pour ton annalyse, je ne construit pas le fichier, c'est une appli cation métier.</div><div class="gmail_quote"><br></div><div class= "gmail_quote">Je vais essayer de le rajouter le n pour voir</div><div clas s="gmail_quote"><br></div>-- <br><div class="gmail_signature" data-smar tmail="gmail_signature"><div dir="ltr">david martin<div><br></div></div ></div> </div></div> --94eb2c1ab3e242b9390550f491ed--
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Lore nzo,</div><div class="gmail_quote"><br></div><div class="gmail_quote">m erci pour ton annalyse, je ne construit pas le fichier, c'est une appli cation métier.</div><div class="gmail_quote"><br></div><div class= "gmail_quote">Je vais essayer de le rajouter le n pour voir</div><div clas s="gmail_quote"><br></div>-- <br><div class="gmail_signature" data-smar tmail="gmail_signature"><div dir="ltr">david martin<div><br></div></div ></div>
</div></div>
--94eb2c1ab3e242b9390550f491ed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 --94eb2c1ab3e242b9390550f491ed Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Lore nzo,</div><div class="gmail_quote"><br></div><div class="gmail_quote">m erci pour ton annalyse, je ne construit pas le fichier, c'est une appli cation métier.</div><div class="gmail_quote"><br></div><div class= "gmail_quote">Je vais essayer de le rajouter le n pour voir</div><div clas s="gmail_quote"><br></div>-- <br><div class="gmail_signature" data-smar tmail="gmail_signature"><div dir="ltr">david martin<div><br></div></div ></div> </div></div> --94eb2c1ab3e242b9390550f491ed--