Sehen Sie sich die Hilfenachricht für wc
an . Die -c
Option gibt die Anzahl der Zeichen aus. Die echo
Der Befehl enthält standardmäßig ein Zeilenumbruchzeichen. Wenn wc
sieht den Zeilenumbruch, zählt es als ein anderes Zeichen und daher die zusätzliche Zählung in Ihrem Ergebnis. Sie können dies umgehen, indem Sie eine der unten gezeigten Alternativen verwenden; -w
zählt die Anzahl der Wörter und -l
zählt die Anzahl der Zeilen.
echo "k" | wc -w
echo "k" | wc -l
Sie können die Ausgabe von wc
weiterleiten bis awk
um die Anzahl der Zeichen ohne die Newline-Zeichen zu erhalten:
wc <filename> | awk '{print $3-$1}'
Die Standardausgabe von wc
ohne Optionen gibt die Anzahl der Zeilenumbrüche ($1 bis awk), die Anzahl der Wörter und die Anzahl der Zeichen ($3 bis awk) in dieser Reihenfolge aus.
wenn Sie echo "k"
, die echo
Der Befehl fügt ein Zeilenumbruchzeichen an das an, was Sie ausgeben möchten ("k"). Sie können den -n
verwenden Option, um dies zu deaktivieren:
echo -n k | wc -c
1
Zum Anzeigen dieses unsichtbaren Zeichen, könnten Sie den Stream mit od
ausgeben oder hd
:
echo k | od -t c
0000000 k \n
echo k | hd
00000000 6b 0a |k.|
echo k | od -t a -A n
k nl
Das liegt daran, dass Sie echo
verwenden , wodurch Ihrer Zeichenfolge ein Zeilenumbruch hinzugefügt wird. Verwenden Sie printf
stattdessen:
$ echo k | wc -c
2
$ printf k | wc -c
1