Si j'exécute la commande cat file | grep pattern
, j'obtiens de nombreuses lignes de sortie. Comment concaténer toutes les lignes en une seule ligne, en remplaçant efficacement chacune "\n"
par "\" "
(fin par "
suivi d'un espace)?
cat file | grep pattern | xargs sed s/\n/ /g
ne fonctionne pas pour moi.
sed
script entre guillemets simples pour que Bash ne le dérange pas (puisque lessed s/\n/ /g
appelssed
avec deux arguments, à savoirs/n/
et/g
); (2) puisque vous voulez la sortiecat file | grep pattern
être l' entrée àsed
, pas les arguments àsed
, vous devez éliminerxargs
; et (3) ce n'est pas nécessairecat
ici, cargrep
peut prendre un nom de fichier comme deuxième argument. Donc, vous auriez dû essayergrep pattern file | sed 's/\n/ /g'
. (Dans ce cas, cela n'aurait pas fonctionné, pour les raisons données sur le lien ci-dessus, mais maintenant vous savez pour l'avenir.)