Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/04/2018, à 04:29

ouste4863

Difficulté à lire l'espace au debut de ligne dans un fichier

Bonjour à tous,
J e travaille sur un petit projet en script shell précisément en bash, mais à présent mon souci comment lire le contenu des fichiers mais certaines lignes peuvent commencer par des espace. Quand ce cas arrivent, les caractères vides ne sont pas lus, et pourtant ils sont lus quand ce n'est pas au début de la ligne. Je serais très content si quelqu'un me donnait coup de main.
Je mets le bout de code pour la lecture

[*]cat tes.txt | while read ligne; do
    echo ${#ligne}
done[/*]

ici j'affiche juste la taille comme vs remarquerez, mais si mon fichier contient 5 caractères par exemple dont le premiers ou les premiers sont des espaces, ils ne sont pas lus, du coup echo m'affiche le nombre de caractères qui viennent après même si le reste contenait des espaces ils sont comptés en ce moment.
Merci d'avance pour vos précieuses aides.

Dernière modification par ouste4863 (Le 28/04/2018, à 04:32)

Hors ligne

#2 Le 28/04/2018, à 04:37

Watael

Re : Difficulté à lire l'espace au debut de ligne dans un fichier

salut,

d'abord, on n'utilise pas cat pour lire un fichier; ça ne sert à rien, c'est un UUOC.

ensuite, pour conserver les espaces qui débutent une ligne, il faut ne pas indiquer de nom de variable à read, qui utilisera alors une variable "auto" REPLY :

while read; do echo "$REPLY"; done <fichier

il faut TOUJOURS mettre des guillemets autour des variables.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 28/04/2018, à 04:49

ouste4863

Re : Difficulté à lire l'espace au debut de ligne dans un fichier

Merci bcp Watael pour cette réponse rapide et claire, mais en fait, j'ai stocker dans la variable ligne dans le but de récupérer caractère après  caractère notamment avec ma méthode   caract2=${ligne:index:1} mais à present avec votre méthode comment je pourrai récupérer les caractères 1 à 1 ?

Dernière modification par ouste4863 (Le 28/04/2018, à 04:49)

Hors ligne

#4 Le 28/04/2018, à 04:54

ouste4863

Re : Difficulté à lire l'espace au debut de ligne dans un fichier

Merci bcp mon grand, ca marche maintenant. Je parviens à recuperer touts les caracteres.
Merci bcp.

Hors ligne