Lihatlah pesan bantuan untuk wc
. -c
pilihan mencetak jumlah karakter. echo
perintah menyertakan karakter baris baru secara default. Ketika wc
melihat baris baru itu menghitungnya sebagai karakter lain dan karenanya menghitung tambahan dalam hasil Anda. Anda dapat menyiasatinya dengan menggunakan salah satu alternatif yang ditunjukkan di bawah ini; -w
menghitung jumlah kata dan -l
menghitung jumlah baris.
echo "k" | wc -w
echo "k" | wc -l
Anda dapat mem-pipe output dari wc
ke awk
untuk mendapatkan jumlah karakter tidak termasuk karakter baris baru:
wc <filename> | awk '{print $3-$1}'
Output default dari wc
tanpa opsi mencetak jumlah karakter baris baru ($1 ke awk), jumlah kata dan jumlah karakter ($3 ke awk) dalam urutan ini.
saat Anda echo "k"
, echo
perintah menambahkan karakter baris baru ke apa pun yang Anda minta untuk dicetak ("k"). Anda dapat menggunakan -n
opsi untuk menonaktifkan ini:
echo -n k | wc -c
1
Untuk melihat itu tidak terlihat karakter, Anda dapat membuang aliran dengan od
atau 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
Itu karena Anda menggunakan echo
, yang menambahkan baris baru ke string Anda. Gunakan printf
sebagai gantinya:
$ echo k | wc -c
2
$ printf k | wc -c
1