Le Forum francophone communautaire des utilisateurs de Kali linux

Développement => Recherche de scripts => Discussion démarrée par: Phrancoua le 26 juillet 2019 à 11:52:51

Titre: [Résolu] | Problème script
Posté par: Phrancoua le 26 juillet 2019 à 11:52:51
Bonjour,

j'ai un peu honte de demander de l'aide sur ça, mais bon ça fais un petit moment que je suis dessus.

J'ai une commande :

while [ $i -ne $nb_mots ]
do
var1=$(sed -n $i\p /usr/share/wordlists/liste_francais.txt)

echo "$var1.org"

i=$((i+1))

done


J'essaye d'echo mon var1 avec autre chose derrière, comme ici par exemple avec .org
Le problème c'est que la sortie ne s'écrit pas du tout correctement. Par exemple le premier mot de la liste est Aaron, j'ai comme sortie de mon echo : .orgn
Le .org surécrit le mot de la liste.
J'ai essayé beaucoup de manip, rien de concluant.

Si vous avez des conseils ou quoique ce soit je suis preneur !

Merci  ;D


Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:14:52
echo $var."text"
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 14:18:50
.orgn
.orgss�
.orgssement
.orgsser
.orgdon
.orgdonnant
.orgdonne
.orgdonn�
.orgdonn�e
.orgdonn�es
.orgdonnent
.orgdonner
.orgdonn�s

J'ai toujours la même sortie ...
Titre: Re : Problème script
Posté par: WarLocG le 26 juillet 2019 à 14:19:44
J'ai pas encore testé ton script mais tu es sur que $var1 contient une valeur ?

Sinon pour les nombres en bash sert toi de expr => https://www.quennec.fr/trucs-astuces/syst%C3%A8mes/gnulinux/programmation-shell-sous-gnulinux/les-bases-de-la-programmation-shell/larithm%C3%A9tique/la-commande-expr
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 14:22:38
Oui quand j'écho simplement var1 j'ai toute la liste qui se lance au fur et à mesure !
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:23:02
ah ben c'est normal ton affichage alors xD
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:25:46
car chez moi si tu stock simplement un mot dans une var :

VAR=truc
echo $VAR.".org"
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 14:29:50
Oui ca techniquement ça marche si c'est juste truc ! Sauf que ça vient d'une liste de mot extérieur 
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:37:30
suffit que tu formate ;)
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 14:38:13
c'est à dire ? Formatter quoi ? :p
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:42:40
ben le contenu de ta variable :)
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 14:49:55
J'ai peur de ne pas bien comprendre ton conseil .. Peux-tu détailler un petit peu ? :)

Sinon, je remarque que quoique je mette derrière la variable, ça surécrit dans le terminal...   :o

J'ai testé : echo "le résultat est : $var1 et rien d'autre"
J'ai comme sortie :
et rien d'autre: Aaron
 et rien d'autre: abaiss�
 et rien d'autre: abaissement
 et rien d'autre: abaisser
 et rien d'autre: abandon
 et rien d'autre: abandonnant
 et rien d'autre: abandonne
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 14:53:06
Tu peux tout simplement dire à bash d'ajouter ".org" à chaque ligne du fichier avec sed , et stocker ça dans la variable si tu en as besoin après ou juste afficher le contenu.

Cette erreur viens du fait que bash arrive pas à interpreter ta demande :)
Titre: Re : Problème script
Posté par: Phrancoua le 26 juillet 2019 à 15:05:52
Mmh d'accord ! Après je voulais mettre .net et .fr, aussi. C'est pas grave je ferai 3 variables ;D

Merci de votre aide
Titre: Re : Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 15:07:27
oui ça tu pourra le faire facilement ne t'en fais pas :)

de rien :)
Titre: Re : [Résolu] | Problème script
Posté par: WarLocG le 26 juillet 2019 à 15:16:03
Vois pas trop bien ce qui coince dans ton script a part peut etre le sed qui est mal écrit, j'ai refait le script de mon coté:

Fichier de test
╭┨warlocg┠┨15:10┠┨~┃
╰> cat exemple.txt
tata
toto
titi
tintin
turlututu
taratata


Le script
#!/bin/bash

FICHIER="exemple.txt"; # a changer par d'autres fichiers

nb_mot=$(cat $FICHIER | wc -l);
i=1;

while [ $i -le $nb_mot ];
do
  content=$(sed -n ''$i' p' $FICHIER);
  i=$(expr $i + 1);

  echo "=> $content";
done

Le résultat
╭┨warlocg┠┨15:13┠┨~┃
╰> sh test_lecture_fichier.sh
=> tata
=> toto
=> titi
=> tintin
=> turlututu
=> taratata
=>

Tu remplaces la flèche par ton .org ou ce que tu veux là.
Titre: Re : [Résolu] | Problème script
Posté par: ZeR0-@bSoLu le 26 juillet 2019 à 15:19:32
C'est ce que j'avais suggérer mais bon ^^' merci à toi :)
Titre: Re : [Résolu] | Problème script
Posté par: WarLocG le 28 juillet 2019 à 00:16:56
Oui mais on n'avait pas vraiment répondu à la question. La question c'était pourquoi ca sur-écrit comme si on avait appuyé sur la touche Insert, du coup je me dis que soit il y a des caractères insécables dans son fichier qui force un retour en début de ligne (à vérifier avec un hexdump ou od) soit peut être le sed qui était mal construit, ce qui me semble le plus probable car l'opération n'était pas entre ' ' (enfin perso j'ai toujours vu sed construit avec les apostrophes). Je sais pas. Enfin bon, le sujet est résolu c'est ce qui compte ^^
Titre: Re : [Résolu] | Problème script
Posté par: ZeR0-@bSoLu le 28 juillet 2019 à 00:19:08
ça me parait plus probable que ça vienne du sed en effet.

Titre: Re : [Résolu] | Problème script
Posté par: Phrancoua le 29 juillet 2019 à 12:31:47
Salut, merci encore de vos réponses :)

Alors le problème vient bien du fichier  :o
Je ne pensais pas que c'tait possible, il m'avait l'air clean quand je l'ouvrais, mais ça n'a pas suffit on dirait car c'est de la que venais le problème !

J'ai pris ton exemple.txt et testé, et ça marche bel et bien. Avec ton code ou avec le mien. Le sed ne devait donc pas poser de problèmes.

Merci encore :)
Titre: Re : [Résolu] | Problème script
Posté par: ZeR0-@bSoLu le 29 juillet 2019 à 12:32:40
De rien merci de ton retour :)
Titre: Re : [Résolu] | Problème script
Posté par: WarLocG le 29 juillet 2019 à 12:40:58
Idem merci pour le retour. Bon à savoir que les apostrophes du sed sont facultatives mais je préfère continuer à les utiliser par bonne pratique :)