GNU/Linux >> Znalost Linux >  >> Linux

Jak počítat řádky v souboru v UNIX/Linux

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


Linux
  1. Jak připojit více řádků k souboru?

  2. unix - počet sloupců v souboru

  3. Jak odstranit setgid (linux/unix)?

  1. Počítat řádky v souboru?

  2. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  3. Jak přejmenovat soubor v Linuxu?

  1. Příkaz wc pro Linux

  2. Jak počítat počet řádků v souboru v Linuxu (příklady wc a nl)

  3. Jak počítat řádky v dokumentu?