it-swarm-eu.dev

Jak mohu spočítat počet řádků souboru pomocí běžných nástrojů?

Přesměrovávám výsledky grep na soubor a poté pomocí cat zobrazuji jeho obsah na obrazovce. Chci vědět, kolik řádků výsledků mám ve svém souboru výsledků a poté je přidat k nějakému čítači.

Jaký bude nejlepší způsob? Nějaký relevantní příznak pro grep nebo cat?

136
k-man

Pokud jste již v souboru shromáždili výstup grep, můžete vydat číslovaný seznam s:

cat -n myfile

Pokud chcete pouze počet řádků, jednoduše proveďte:

wc -l myfile

Neexistuje absolutně žádný důvod:

cat myfile | wc -l

... protože to zbytečně musím opakovat I/O (cat), které wc musí opakovat. Kromě toho máte dva procesy, kde jeden stačí.

Pokud chcete do terminálu grep a na konci vytisknout počet shod, můžete:

grep whatever myfile | tee /dev/tty | wc -l
159
JRFerguson

Tuto úlohu provede příznak -c. Například:

 grep -c ^ filename

bude počítat řádky vrácené grep.

Dokumentováno na manuálové stránce :

-c, --count Potlačí normální výstup; místo toho vytiskněte počet odpovídajících řádků pro každý vstupní soubor

67
peri4n

Použití

your_command | wc -l

Z manuálu:

NAME
       wc - print newline, Word, and byte counts for each file

...

       -l, --lines
          print the newline counts
21
aioobe

Použití AWK k počítání řádků v souboru

awk 'END {print NR}' filename
5
Vivek parikh

Počet řádků můžete získat pomocí wc -l.

Příklad:

$ cat foobar.txt | wc -l
4
Steven Bakhtiari

Nepoužívejte wc: poslední řádek se nezapočítává, pokud není ukončen symbolem konce řádku (alespoň v případě Mac). Použijte místo toho:

nbLines=$(cat -n file.txt | tail -n 1 | cut -f1 | xargs)
0
ling