GNU/Linux >> Tutoriels Linux >  >> Linux

Comment concaténer plusieurs lignes de sortie sur une seule ligne ?

Sortie de tuyauterie vers xargs concatènera chaque ligne de sortie en une seule ligne avec des espaces :

grep pattern file | xargs

Ou n'importe quelle commande, par ex. ls | xargs . La limite par défaut de xargs la sortie est d'environ 4096 caractères, mais peut être augmentée avec par exemple. xargs -s 8192 .

grep xargs


Utilisez tr '\n' ' ' pour traduire tous les caractères de nouvelle ligne en espaces :

$ grep pattern file | tr '\n' ' '

Remarque :grep lit les fichiers, cat concatène les fichiers. Ne cat file | grep !

Modifier :

tr ne peut gérer que les traductions d'un seul caractère. Vous pouvez utiliser awk pour changer le séparateur d'enregistrement de sortie comme :

$ grep pattern file | awk '{print}' ORS='" '

Cela transformerait :

one
two 
three

à :

one" two" three" 

Linux
  1. Comment démarrer Grep multi-thread dans le terminal ?

  2. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  3. Envoi de "ps" sur plusieurs serveurs, sortie vers un seul fichier texte ?

  4. Comment trouver plusieurs chaînes dans des fichiers ? ?

  5. Comment grep avec la sortie couleur

Comment supprimer une ligne dans Vim sous Linux

Comment commenter plusieurs lignes à la fois dans l'éditeur Vim

Comment joindre plusieurs lignes en une seule dans un fichier sous Linux

Comment supprimer plusieurs lignes dans Vim

Comment modifier les lignes précédentes dans une commande à plusieurs lignes dans Bash ?

Combinez plusieurs commandes Unix en une seule sortie