Bonjour,
J'ai 17 ficheirs qui contiennent des séquences je veux assembler ces séquences en un seul fichier.
est-ce que vous avez un code pour cela ou une idée?
Merci
Bonjour,
J'ai 17 ficheirs qui contiennent des séquences je veux assembler ces séquences en un seul fichier.
est-ce que vous avez un code pour cela ou une idée?
Merci
Bonjour,
Si tu as 17 fichiers nommés par exemple « sequence1.txt » à « sequence17.txt », que tu souhaites simplement concaténer ces fichiers et que tu travailles avec un unixoïde, tu peux le faire en une seule commande depuis le shell :
Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part $ cat sequence*.txt > sortie.txt
Si tu tiens à le faire avec un programme C (inutile à mon sens), tu ouvres ton fichier de sortie en écriture, puis tu fais une boucle comptant de 1 à 17, et à l'intérieur de laquelle tu ouvres ton fichier en lecture, tu lis son contenu dans un buffer avec fread(), tu écris ce que tu viens de lire dans le fichier de sortie avec fwrite() et tu refermes le fichier ouvert en lecture. Quand tu sors de la boucle, tu refermes à son tour le fichier ouvert en écriture et tu as fini.
pour le shell il m semble que c'est une solution plus simple mais je ne suis pas expert en shell.
je veux faire le code en shell.
est-ce que je fais une boucle sur??
Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part $ cat sequence*.txt > sortie.txt
Merci
Non. L'étoile, à cette position, va automatiquement développer le nom de tous les fichiers commençant par « sequence » et se finissant par « .txt » (donc à adapter éventuellement à tes vrais noms de fichiers), et va les passer en argument à la commande appelée, ici cat. La commande en question va elle-même se charger, ensuite, d'appeler un à un et dans l'ordre tous les fichiers dont on lui aura passé le nom, et à renvoyer leur contenu intégral vers la sortie standard. Cette sortie standard est ensuite redirigée avec « > » vers le fichier de ton choix, ici « sortie.txt ».
Tu peux taper echo sequence*.txt ou ce qui en tient lieu pour vérifier que les noms de tous les fichiers concernés apparaissent, et seulement eux.
Donc, dès que tu auras écrit cette ligne dans ton invite de commande et appuyé sur Entrée, tu auras obtenu le résultat convoité.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager