Eu usaria:
<file wc -l
O qual, contariamente a cat file | wc -l
, não precisa criar um shell e executar outro processo (e executa mais rápido):
% time </tmp/ramdisk/file wc -l
8000000
wc -l < /tmp/ramdisk/file 0,07s user 0,06s system 97% cpu 0,132 total
% time cat /tmp/ramdisk/file | wc -l
8000000
cat /tmp/ramdisk/file 0,01s user 0,16s system 80% cpu 0,204 total
wc -l 0,09s user 0,10s system 94% cpu 0,203 total
( /tmp/ramdisk/file
foi armazenado em um disco RAM para tirar a E / S e o cache da equação.)
No entanto, para arquivos pequenos, a diferença é negligenciável.
Ainda outro jeito seria:
wc -l file | cut -d ' ' -f 1
Qual dos meus testes executa aproximadamente o mesmo que <file wc -l
.