Otázka :Na svém systému Linux mám soubor, který má spoustu řádků. Jak spočítám celkový počet řádků v souboru?
Pomocí „wc -l“
Existuje několik způsobů, jak počítat řádky v souboru. Ale jedním z nejjednodušších a široce používaných způsobů je použití „wc -l“. Nástroj wc zobrazuje počet řádků, slov a bajtů obsažených v každém vstupním souboru nebo standardním vstupu (pokud není zadán žádný soubor) na standardní výstup.
Syntaxe je:
# wc -l [filename]
Zvažte tedy soubor zobrazený níže:
$ cat file01.txt this is a sample file with some sample data
1. Příkaz „wc -l“ při spuštění na tomto souboru vypíše počet řádků spolu s názvem souboru.
$ wc -l file01.txt 5 file01.txt
2. Chcete-li z výsledku vynechat název souboru, použijte:
$ wc -l < file01.txt 5
3. Vždy můžete poskytnout výstup příkazu příkazu wc pomocí potrubí. Například:
$ cat file01.txt | wc -l 5
Místo kočky zde můžete mít jakýkoli příkaz. Výstup z libovolného příkazu lze převést do příkazu wc, aby se spočítaly řádky na výstupu.
Pomocí awk
Pokud musíte k nalezení počtu řádků použít awk, použijte níže uvedený příkaz awk:
$ awk 'END{print NR}' [filename]
Příklad výstupu:
$ awk 'END{print NR}' file01.txt 5
Použití sed
Použijte níže uvedenou syntaxi příkazu sed k nalezení počtu řádků pomocí GNU sed:
$ sed -n '$=' [filename]
Příklad výstupu:
$ sed -n '$=' file01.txt 5
Použití grep
Náš starý dobrý známý "grep" lze také použít k počítání řádků v souboru. Tyto příklady jsou jen proto, abyste věděli, že existuje několik způsobů, jak počítat řádky bez použití "wc -l". Ale na požádání budu vždy místo těchto možností používat "wc -l", protože je příliš snadné si to zapamatovat.
$ grep -c ".*" [filename]
Příklad výstupu:
$ grep -c ".*" file01.txt 5
S GNU grep můžete použít níže uvedenou syntaxi grep:
$ grep -Hc ".*" [filename]
Zde je další verze příkazu grep pro zjištění počtu řádků.
$ grep -c ^ file01.txt 5
Příklad výstupu:
$ grep -Hc ".*" file01.txt file01.txt:5
Několik dalších příkazů
Spolu s výše uvedenými příkazy je dobré znát některé zřídka používané příkazy k nalezení počtu řádků v souboru.
1. Pomocí příkazu nl (filtr číslování řádků) očíslujte každý řádek. Syntaxe příkazu je:
$ nl [filename]
Příklad výstupu:
$ nl file01.txt 1 this is a sample 2 file 3 with 4 some sample 5 data
Není to tak přímý způsob, jak získat počet řádků. Ale můžete použít awk nebo sed k získání počtu z posledního řádku. Například:
$ nl file01.txt | tail -1 | awk '{print $1}' 5
2. Můžete také použít vi a vim s příkazem ":set number" k nastavení čísla na každém řádku, jak je znázorněno níže. Pokud je soubor velmi velký, můžete použít "Shift+G" pro přechod na poslední řádek a zjistit počet řádků.
3. Použijte příkaz cat s -n přepněte, aby byl každý řádek očíslován. Opět zde můžete získat počet řádků z posledního řádku.
$ cat -n file01.txt 1 this is a sample 2 file 3 with 4 some sample 5 data
$ cat -n file01.txt | tail -1 | awk '{print $1}' 5
4. Pro zjištění počtu řádků můžete také použít perl one lines:
$ perl -lne 'END { print $. }' file01.txt 5