27 votes

Comment convertir un texte de plusieurs lignes en une seule ligne ?

J'essaie de faire un fichier txt avec une clé générée en 1 ligne. exemple :

<----- key start ----->
lkdjasdjskdjaskdjasdkj
skdhfjlkdfjlkdsfjsdlfk
kldshfjlsdhjfksdhfksdj
jdhsfkjsdhfksdjfhskdfh
jhdfkjsdhfkjsdhfkjsdhf
<----- key stop ----->

Je veux que ça ressemble à :

lkdjasdjskdjaskdjasdkjskdhfjlkdfjlkdsfjsdlfkkldshfjlsdhjfksdhfksdjjdhsfkjsdhfksdjfhskdfhjhdfkjsdhfkjsdhfkjsdhf

Remarquez que je veux aussi les lignes <----- key start -----> y <----- key stop -----> retiré. Comment puis-je faire cela ? Est-ce que cela peut se faire avec sed ?

34voto

15voto

Axel Bregnsbo Points 73

Pour convertir une sortie multi-lignes en une seule ligne séparée par un espace, utilisez

tr '\n' ' ' < key.txt

Je sais que cela ne répond pas à la question détaillée. Mais c'est une réponse possible au titre. J'avais besoin de cette réponse et ma recherche sur Google a trouvé cette question.

6voto

Costa Points 1213

Si vous cherchez tout ce que vous avez demandé dans un seul ber, j'ai ce...

sed -n '1h;2,$H;${g;s/\n//g;s/<----- key \(start\|stop\) ----->//g;p}' key.txt

Mais ce n'est pas vraiment facile à lire :) Si cela ne vous dérange pas de mettre quelques commandes en pipeline, vous pouvez utiliser les suggestions de grep, tr, sed, etc. en pipeline dans le reste des réponses que vous avez obtenues.

5voto

JavierY Points 86
tail -n +2 key.txt | head -n -1 | tr -d '\n'

Tail pour supprimer la première ligne, head pour supprimer la dernière ligne et tr pour supprimer les nouvelles lignes.

2voto

kuriouscoder Points 1364

Un moyen simple serait d'utiliser cat file.txt | tr -d '\n'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X