15 votes

Pourquoi wc -c imprime-t-il des espaces avant le nombre ?

Commande :

echo "test" | wc -c

les résultats (7 espaces) :

"       5"

J'ai testé cela sur ma machine linux et je n'obtiens pas l'espace devant le cinq. Est-ce un bug ou un comportement attendu ?

13voto

Oskar Points 1242

C'est un choix délibéré. Vous pouvez voir comment wc en retirant les "onglets" des tampons -c de sorte que le premier chiffre soit aligné sur les autres.

Vous pouvez utiliser l'espace blanc si nécessaire avec un autre tube, mais vous devez prévoir cela si vous écrivez des scripts sous MacOS et que vous n'avez pas d'espace différent pour les scripts. wc commandement vers le bas. Les options sont infinies

echo "test" | wc -c | xargs
echo "test" | wc -c | tr -d ' '
echo "test" | wc -c | sed 's/ //g'
echo $(echo "test" | wc -c)

3voto

Dan Cain Points 11

Je trouve que cette solution est plus facile à mettre en œuvre dans diverses situations, car le plus souvent, je souhaite simplement connaître le nombre de "lignes".

echo "test" | awk 'END{print NR}' qui renvoie 1

Ce billet contient des informations supplémentaires sur la mise en œuvre de POSIX https://unix.stackexchange.com/a/205910

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X