Podívejte se na zprávu nápovědy pro wc . -c volba vytiskne počet znaků. echo příkaz ve výchozím nastavení obsahuje znak nového řádku. Když wc vidí nový řádek, počítá to jako další znak, a tedy další počet ve vašem výsledku. Můžete to obejít pomocí jedné z níže uvedených alternativ; -w počítá počet slov a -l počítá počet řádků.
echo "k" | wc -w
echo "k" | wc -l
Výstup wc můžete kanálem až awk získat počet znaků kromě znaků nového řádku:
wc <filename> | awk '{print $3-$1}'
Výchozí výstup wc bez možnosti vytiskne počet znaků nového řádku ($1 až awk), počet slov a počet znaků ($3 až awk) v tomto pořadí.
když echo "k" , echo příkaz připojí znak nového řádku ke všemu, co jste ho požádali o vytištění ("k"). Můžete použít -n možnost toto zakázat:
echo -n k | wc -c
1
Za zobrazení toho neviditelného znak, můžete vypsat stream pomocí od nebo 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
Je to proto, že používáte echo , který přidá nový řádek do vašeho řetězce. Použijte printf místo toho:
$ echo k | wc -c
2
$ printf k | wc -c
1