📜 Как посчитать строки в файле в UNIX / Linux

by itisgood
Вопрос: в моей системе Linux есть файл с большим количеством строк.
Как подсчитать общее количество строк в файле?

Использование команды «wc -l»


Есть несколько способов подсчета строк в файле.

Но один из самых простых и широко используемых способов – использовать «wc -l».

Утилита wc отображает количество строк, слов и байтов, содержащихся в каждом входном файле, или в стандартном вводе (если файл не указан).

Синтаксис:

# wc -l [filename]

Итак, рассмотрим файл, показанный ниже:

$ cat file01.txt
this is a sample
file
with
some sample
data
1. Команда «wc -l» выводит количество строк:
$ wc -l file01.txt
       5 file01.txt
2. Чтобы спратятать имя файла из результата, используйте:
$ wc -l < file01.txt
       5
3. Вы всегда можете предоставить вывод для команды wc, используя pipe.
Например:
$ cat file01.txt | wc -l
       5
Вы можете использовать любую команду в этом примереь, необязательно cat.
Вывод любой команды может быть передан в команду wc для подсчета строк в выводе.

Использование команды awk

Если вы хотите использовать awk для определения количества строк, используйте следующую команду awk:

$ awk 'END{print NR}' [filename]
Пример вывода:
$ awk 'END{print NR}' file01.txt
5

Использование команды sed

$ sed -n '$=' [filename]

Пример вывода:

$ sed -n '$=' file01.txt
5

Использование команды grep

Наш старый добрый друг “grep” также может быть использован для подсчета количества строк в файле.

Эти примеры показаны только для того, чтобы вы знали, что существует несколько способов подсчета строк без использования “wc -l”.

Но если меня спросят, я всегда буду использовать «wc -l» вместо этих опций, так как это слишком легко запомнить.

$ grep -c ".*" [filename]

Пример вывода:

$ grep -c ".*" file01.txt
5

В GNU grep вы можете использовать следующий синтаксис grep:

$ grep -Hc ".*" [filename]

Вот еще одна версия команды grep для поиска количества строк.

$ grep -c ^ file01.txt
5

Пример вывода:

$ grep -Hc ".*" file01.txt
file01.txt:5

Еще несколько команд

Наряду с приведенными выше командами полезно знать некоторые редко используемые команды для поиска количества строк в файле.

1. Используйте команду nl (фильтр нумерации строк), чтобы получить нумерацию каждой строки.

Синтаксис команды:

$ nl [filename]

Пример вывода:

$ nl file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data

Это не очень точный способ узнать количество строк.

Но вы можете использовать awk или sed для подсчета последней строки.

Например:

$ nl file01.txt | tail -1 | awk '{print $1}'
5
2. Вы также можете использовать vi и vim с командой “: set number”, чтобы установить число в каждой строке, как показано ниже.
Если файл очень большой, вы можете использовать «Shift + G», чтобы перейти к последней строке и получить количество строк.
3. Используйте команду cat с ключом -n, чтобы получить номера каждой строки.
Опять же, здесь вы можете получить количество строк из последней строки.
$ 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. Вы также можете использовать perl, чтобы найти количество строк:

$ perl -lne 'END { print $. }' file01.txt
5

Спонсор статьи – курс валют в банках Украины

You may also like

Leave a Comment