342 votes

Bash : Supprimer le saut de ligne de la sortie

Lorsque j'exécute des commandes en Bash (ou pour être plus précis, wc -l < log.txt ), la sortie contient un saut de ligne. Comment puis-je m'en débarrasser ?

11voto

zero2cx Points 432

printf a déjà coupé la nouvelle ligne de fin pour vous :

$ printf '%s' $(wc -l < log.txt)

Détail :

  • printf imprimera votre contenu à la place de l'élément %s porte-cordon.
  • Si vous ne lui demandez pas d'imprimer un saut de ligne ( %s\n ), ce ne sera pas le cas.

10voto

nneonneo Points 56821

Si vous affectez sa sortie à une variable, bash supprime automatiquement les espaces blancs :

linecount=`wc -l < log.txt`

10voto

Louis Points 461

J'ajoute ceci pour ma référence plus qu'autre chose ^_^

Vous pouvez également supprimer une nouvelle ligne de la sortie en utilisant la magie d'expansion de bash

VAR=$'helloworld\n'

CLEANED="${VAR%$'\n'}"

echo "${CLEANED}"

2voto

Rakesh Gupta Points 434

Utilisation de Awk :

awk -v ORS="" '1' log.txt 

Explication :

  1. -Affectation des V pour les SRO
  2. ORS - séparateur d'enregistrement de sortie réglé sur blanc. Cela remplacera la nouvelle ligne (séparateur d'enregistrement d'entrée) par ""

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