Retourner aux forums || Retourner au forum Astuces.divers

Astuces.divers : [Terminal] Fusionner les lignes d'un texte

Posté par davux (Jabber id, page perso, ) le 09 novembre 2006
0
Question: Sous GNU, comment supprimer rapidement les sauts de ligne d'un fichier, c'est-à-dire fusionner les lignes en une seule ?

Réponse: xargs < nomdefichier

Explication:
0. xargs a pour fonction de lire le texte donné sur son entrée standard et d'appeler une commande ayant pour arguments le texte en question. Par exemple: echo "/tmp" | xargs ls -l. Ici, xargs lira "/tmp" sur son entrée standard, et appellera donc ls -l /tmp.
1. Caractéristique notable de xargs: les sauts de ligne éventuels de l'entrée standard sont interprétés comme séparateurs d'arguments pour forger la commande finale, au même titre que les espaces.
2. Seconde caractéristique: en l'absence de commande passée à xargs, c'est "/bin/echo" qui est utilisé. On aurait pu donc écrire xargs echo < nomdefichier, ou encore le pléonasme fréquent: cat nomdefichier | xargs echo, mais c'est quand même moins joli :)

> Lire le message (2 commentaires, moyenne: 1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Remarques post-modération

Posté par davux (Jabber id, page perso, ) le 10/11/2006 à 11:46. (lien). Évalué à 1.

1. Sur la formulation: l'astuce parle de "fusionner" les lignes, mais ce n'est pas exact: ça met aussi une espace entre chaque ligne.

2. Comme on vient de me faire remarquer, ça marche seulement si les lignes ne sont pas trop "bizarres". Par exemple si elles contiennent des guillemets simples ou doubles ça marche pas. Autre solution: un bête "tr":
tr '\n' ' ' < nomdefichier

  • [^]Ou plus simplement..

    Posté par knarf2 () le 09/05/2007 à 07:44. (lien). Évalué à 1.

    tr -d '\n' < fichier

    --
    On a long enough timeline, the survival rate for everyone drops to zero.

Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers