-2
votes

Comment appendez une nouvelle ligne \ n dans une boucle

Je veux ajouter un nouveau caractère de ligne '\ n' à la fin de chaque ligne de mon fichier.

Voici mon code: p>

id123    0 1    0 0    ...
id456    1 1    1 0    ...
...


5 commentaires

Un simple echo ne fonctionne pas?


@Zumodevidrio non, qui est vraiment bizarre. J'ai essayé | echo '\ n', qui ne fonctionne pas évidemment. Alors | echo "\ n", finissait uniquement \ n dans mon fichier. Et puis Printf et Imprimer ne fonctionnent pas non plus. Je ne sais pas quoi faire maintenant :(


Parce que echo n'imprime que c'est des arguments, pas d'entrée. Au lieu d'utiliser echo après le tuyau, vous pouvez également insérer une nouvelle ligne avec | sed 's / $ / \ n /' qui remplace la fin de la ligne en cours avec \ n


@Zelnes le SED après que le tuyau fonctionne parfaitement! Merci beaucoup!


Pourquoi ne faites-vous pas toute cette boucle à l'intérieur d'un awk au lieu de se frayer 4 processus sur toutes les lignes? Vous appelle awk quand même, déposez le lisez et laissez-le traiter tout le fichier.


3 Réponses :


0
votes

Vous ne pouvez ouvrir le fichier de sortie qu'une seule fois, à la fin du pendant la boucle code>, puis faites ce que vous voulez sortir dans la boucle.

sed -r 's/:[^[:blank:]]+//g; s/[|/]/ /g' input


0 commentaires

0
votes

Que diriez-vous: xxx

ou utilisez "$ line" $ nouvelle ligne Si nécessaire pour conserver la mise en forme d'origine de $ line en fonction de votre besoin.


0 commentaires

0
votes

Peut-être que vous surchargez cela. ( XY Problème? )

$: sed 's,[|/], ,g; s/:[^   ]*//g;' file_in > genotype_processed.txt


0 commentaires