Salut,
je bute sur le pb suivant :
un fichier 8.txt contient des centaines de lignes dans ce genre
je souhaite que pour la totalité du fichier 8.txt, chaque ligne soit lue et enregistrée comme une variable provisoire et que cette variable soit reportée (à un emplacement précis) dans un autre fichier (9.txt). Donc, une fois que la ligne (i-1) est reportée dans 9.txt, on passe à la ligne i et ainsi de suite jusqu'à ce qu'on ait atteint la fin du fichier 8.txt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 %Exp1%\Exp2\nom1 %Exp4%\nom2 %Exp2%\nom3 nom7 ...
Avant d'envisager de placer ces variables à un emplacement précis d'un fichier (contenant lui aussi plusieurs centaines de lignes), j'aimerais au moins arriver à le faire dans un simple fichier vierge (z.txt)
Après de nombreuses recherches, j'ai cru comprendre qu'il était préférable d'utiliser "while read ligne" plutot qu'une boucle "for i in 8.txt". Voilà où j'en suis pitoyablement arrivé :
ça a l'air de marcher mais ça me semble hasardeux, et de plus, ce qui est super gênant, c'est que ça hache les lignes contenant des espaces et que ça enlève des caractères spéciaux tels que les antislash
Code : Sélectionner tout - Visualiser dans une fenêtre à part while read line ; do var=$line ; echo $var >> z.txt ; var= ; done < 8.txt
J'ai vu par ailleurs un tas d'autres commandes, telles que perl, awk... et là je commence sérieusement à m'embrouiller. Est-ce que vous pourriez me donner une piste supplémentaire orientée vers la solution recherchée ?
Merci
Partager