[HS] si mon fichier contient la premiere ligne

Le
David Martin
--f403045ebee62340330550e35e47
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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éc=
ution (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

--f403045ebee62340330550e35e47
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir="ltr">Bonjour à tous,<div><br></div><div>C&#39;est tout b=
ête mais je ne vois pas comment je peux faire un controle sur une lign=
e.</div><div><br></div><div>J&#39;ai un fichier, dans lequel je gén=
re une ligne d&#39;éxécution (un resultat d&#39;un bash), si j=
&#39;en ai plusieurs</div><div>c&#39;est que j&#39;ai un problème dans=
l&#39;éxécution de mon script.</div><div><br></div><div>Comment =
puis-je faire pour controler si j&#39;ai strictement et seulement une seule=
ligne dans ce fichier,</div><div>mais si j&#39;en ai plusieurs ça ne =
va pas ?</div><div><br></div><div>echo &quot;c&#39;est bon&quot;</div><div>=
<br></div><div><br></div><div>echo &quot;c&#39;est pas bon&quot;</div><div>=
<br></div><div>Je pourrais faire un controle si il est vide ou pas, mais ce=
n&#39;est pas ça dont j&#39;ai besoin</div><div><br></div><div>Si vou=
s avez une idée ?</div><div><br></div><div><div><br></div>-- <br><div =
class="gmail_signature" data-smartmail="gmail_signature"><div dir="lt=
r">david martin<div><br></div></div></div>
</div></div>

--f403045ebee62340330550e35e47--
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yves Rutschle
Le #26434933
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 #26434947
Le 01/06/17 à 12:47, Lorenzo Bernardi 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 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
Le #26434961
--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></div>
--001a114a7370a66e7d0550e4ccb4--
Lorenzo Bernardi
Le #26434959
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.
David Martin
Le #26434960
--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
Le #26434973
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
Yves Rutschle
Le #26434982
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
Le #26435010
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 #26435011
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
Le #26435024
--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></div>
--94eb2c1ab3e242b9390550f491ed--
Publicité
Poster une réponse
Anonyme