GNU/Linux >> Znalost Linux >  >> Linux

Jak zřetězit více řádků výstupu do jednoho řádku?

Výstup potrubí do xargs zřetězí každý řádek výstupu do jednoho řádku s mezerami:

grep pattern file | xargs

Nebo jakýkoli příkaz, např. ls | xargs . Výchozí limit xargs výstup je ~4096 znaků, ale lze jej zvýšit např. xargs -s 8192 .

grep xargs


Použijte tr '\n' ' ' pro převod všech znaků nového řádku na mezery:

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

Poznámka:grep čte soubory, cat spojuje soubory. Ne cat file | grep !

Upravit:

tr dokáže zpracovat pouze překlady jednoho znaku. Můžete použít awk změnit oddělovač výstupního záznamu jako:

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

To by se transformovalo:

one
two 
three

komu:

one" two" three" 

Linux
  1. Jak spustit vícevláknový Grep v terminálu?

  2. Jak připojit více řádků k souboru?

  3. Jak najít více řetězců v souborech?

  1. Jak mohu uvést jeden název souboru na výstupní řádek v Linuxu?

  2. Jak připojit obsah více souborů do jednoho souboru

  3. Jak převést výstup z grep do cp?

  1. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?

  2. Jak předat výstup příkazu jako více argumentů jinému příkazu

  3. Kombinujte více unixových příkazů do jednoho výstupu