Linux количество строк в файле

Обновлено: 04.07.2024

Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

Закрыт 4 месяца назад.

У меня есть такие строки, и я хочу знать, сколько их у меня на самом деле.

Есть ли способ подсчитать их все с помощью команд Linux?

28 ответов 28

Это выведет количество строк в:

Или, чтобы исключить из результата, используйте wc -l :

Вы также можете передавать данные в wc:

это здорово!! вы можете использовать awk, чтобы избавиться от имени файла, добавленного к номеру строки как такового: wc -l | авк '

Остерегайтесь, что wc -l считает "переводы строк". Если у вас есть файл с двумя строками текста и одним символом "новой строки" между ними, wc выведет "1" вместо "2".

Для подсчета всех строк используйте:

Чтобы отфильтровать и подсчитать только строки с использованием шаблона:

Или используйте -v, чтобы инвертировать соответствие:

См. справочную страницу grep, чтобы ознакомиться с аргументами -e, -i и -x.


Как ни странно, иногда у меня лучше работает команда grep -c. В основном из-за wc -l надоедливого префикса пробела «функция».

Кроме того, если ваша последняя строка не заканчивается на LF или CRLF, wc -l выдает неправильное количество строк, так как считает только окончания строк. Таким образом, grep с таким шаблоном, как ^.*$, на самом деле даст вам истинный номер строки.

есть много способов. использование wc — один из них.

sed -n '$=' файл (GNU sed)

Да, но wc -l file дает вам количество строк И имя файла, чтобы получить только имя файла, которое вы можете сделать: filename.wc -l

Я проголосовал за это решение, потому что wc -l подсчитывает символы новой строки, а не фактические строки в файле. Все остальные команды, включенные в этот ответ, дадут вам правильный номер, если вам нужны строки.

Инструмент wc является "счетчиком слов" в UNIX и UNIX-подобных операционных системах, но вы также можете использовать его для подсчета строк в файле, добавив параметр -l.

wc -l foo подсчитает количество строк в foo . Вы также можете направить вывод из программы следующим образом: ls -l | wc -l , который сообщит вам, сколько файлов находится в текущем каталоге (плюс один).

ls -l | wc -l фактически даст вам количество файлов в каталоге +1 для строки общего размера. вы можете сделать ls -ld * | wc -l, чтобы получить правильное количество файлов.

wc -l не считает строки.

Да, этот ответ может быть немного запоздалым для вечеринки, но я пока не нашел никого, кто документировал бы более надежное решение в ответах.

Вопреки распространенному мнению, POSIX вообще не требует, чтобы файлы заканчивались символом новой строки. Да, определение строки POSIX 3.206 выглядит следующим образом:

Последовательность из нуля или более несимволов плюс завершающий символ.

Однако многие люди не знают, что POSIX также определяет неполную строку POSIX 3.195 как:

Последовательность одного или нескольких несимволов в конце файла.

Следовательно, файлы без LF в конце полностью совместимы с POSIX.

Если вы решите не поддерживать оба типа EOF, ваша программа несовместима с POSIX.

В качестве примера рассмотрим следующий файл.

Независимо от EOF, я уверен, вы согласитесь, что есть две строки. Вы поняли это, посмотрев, сколько строк было начато, а не по тому, сколько строк было завершено. Другими словами, согласно POSIX, эти два файла имеют одинаковое количество строк:

На справочной странице достаточно ясно сказано о том, что wc подсчитывает новые строки, причем новая строка — это просто символ 0x0a:

Следовательно, wc даже не пытается подсчитать то, что вы могли бы назвать "строкой". Использование команды wc для подсчета строк вполне может привести к неправильному подсчету, в зависимости от EOF вашего входного файла.

POSIX-совместимое решение

Вы можете использовать grep для подсчета строк, как в примере выше. Это решение более надежное и точное, и оно поддерживает все разновидности того, какой может быть строка в вашем файле:

В Linux одну задачу можно выполнить несколькими способами. Точно так же, если вы хотите подсчитать количество строк в одном или нескольких файлах, вы можете использовать разные команды. В этой статье я расскажу о пяти различных способах, в том числе о том, что вы можете использовать для печати общего количества строк в большом файле.

1. Подсчитайте количество строк с помощью команды wc

Поскольку wc означает "счетчик слов", это наиболее подходящая и простая команда, единственной целью которой является подсчет слов, символов или строк в файле.

Предположим, вы хотите подсчитать количество строк в текстовом файле с именем distros.txt.

Просмотреть содержимое файла

Просмотр содержимого файла

Вы можете использовать опцию "-l" или "--line" с командой wc следующим образом:

Подсчет строк в файле

Подсчет строк в файле

Вы можете видеть, что wc также считает пустую строку и печатает количество строк вместе с именем файла. В случае, если вы хотите отобразить только общее количество строк, вы также можете скрыть имя файла, перенаправив содержимое файла на wc с помощью левой угловой скобки ( вместо передачи файла в качестве параметра.

 Вывести общее количество строк в файле

Печатать общее количество строк в файле

Более того, чтобы отобразить несколько строк из более чем одного файла одновременно, вам необходимо передать имена файлов в качестве аргументов, разделенных пробелом.

 Подсчет строк в нескольких файлах

Подсчет строк в нескольких файлах

Другим способом вы также можете использовать команду cat для перенаправления содержимого файла команде wc в качестве ввода через канал ('|').

Перенаправить содержимое файла

Перенаправить содержимое файла

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

2. Подсчитайте количество строк с помощью команды Awk

Awk — очень мощная утилита командной строки для обработки текста. Если вы уже знаете awk, вы можете использовать его для нескольких целей, включая подсчет количества строк в файлах.

Однако освоение этого может занять некоторое время, если вы находитесь на начальном уровне. Следовательно, если вы просто хотите использовать его для подсчета общего количества строк в файле, вы можете запомнить следующую команду:

Подсчет строк в файле с помощью Awk

Подсчет строк в файле с помощью Awk

Здесь NR — это количество записей или, скажем, номеров строк в файле, обрабатываемом в разделе END.

3. Подсчитайте количество строк с помощью команды Sed

Sed также является очень полезным инструментом для фильтрации и редактирования текста. Помимо текстового потокового редактора, вы также можете использовать sed для подсчета количества строк в файле с помощью команды:

Подсчет строк в файле с помощью Sed

Подсчет строк в файле с помощью Sed

Здесь '=' печатает номер текущей строки в стандартный вывод. Таким образом, в сочетании с параметром -n подсчитывается общее количество строк в файле, переданном в качестве аргумента.

4. Подсчитайте количество строк с помощью команды Grep

Используя еще одну полезную команду поиска по шаблону grep, вы можете получить общее количество строк в файле с помощью параметров "-e" или "--regexp" и "-c" или "--count".

Подсчет строк в файле с помощью Grep

Подсчет строк в файле с помощью Grep

Здесь '$' – это регулярное выражение, представляющее конец строки и '^' начало строки. Вы можете использовать любое регулярное выражение.

5. Подсчитайте количество строк с помощью команд nl и cat

Вместо прямого получения общего количества строк вы также можете распечатать содержимое файла и получить общее количество строк, взглянув на номер последней строки. Для этой цели nl — это простая команда для печати данных с пронумерованными строками.

 Печать строк нумерации в файле

Печать строк нумерации в файле

Для больших файлов отображение всех данных в терминале не кажется подходящим способом. Так что вы также можете передать данные в команду tail, чтобы просто напечатать только некоторые из последних пронумерованных строк.

 Список строк нумерации в файле

Список строк нумерации в файле

Точно так же можно использовать команду cat с параметром '-n' для печати содержимого файла с номерами строк.

Печать содержимого файла с номерами строк

Печать содержимого файла с номерами строк

Заключение

Изучив пять способов подсчета строк, вы, должно быть, задаетесь вопросом, какой из них лучше всего подходит для вас? На мой взгляд, независимо от того, являетесь ли вы новичком или опытным пользователем Linux, команда wc — самый простой и быстрый способ.

Однако, если вы изучаете другие мощные инструменты, такие как grep, awk и sed, вы также можете попрактиковаться с этими командами, чтобы отточить свои навыки.

Практика подсчета строк в файле обычно применяется разработчиками для определения длины их кода или программы. Они делают это, чтобы выяснить эффективность программы, программа с меньшим количеством строк, выполняющих ту же задачу, по сравнению с программой с большим количеством строк, считается более эффективной.

В Linux существуют разные методы подсчета количества строк в файлах, все эти методы подробно обсуждаются в этой статье.

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

У нас есть текстовый файл в домашнем каталоге с именем «myfile.txt», для отображения содержимого текстового файла используйте команду:


Способ 1. Использование команды wc

Один из способов подсчета количества строк — использование команды «wc» с флагом «-l», который используется для отображения количества строк:


Вы также можете использовать команду wc с командой cat для отображения количества строк в файле:


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

Еще один способ подсчета строк файла в Linux — использование команды awk:


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

Команду sed также можно использовать в Linux для отображения количества строк в файле. Использование команды sed для отображения количества строк описано ниже:


Способ 4. Использование команды Grep

Команда «grep» используется для поиска, но ее можно использовать для подсчета количества строк, а также для их отображения, для этого выполните следующую команду и замените «myfile.txt» на ваш файл имя в команде:


В приведенной выше команде мы использовали флаг «-c», который подсчитывает количество строк, а «.*» используется в качестве обычного шаблона, или мы можем сказать, чтобы узнать строки в файле, еще один способ используйте команду grep, чтобы она также отображала имя файла в выводе, является использование флага «-H»:


Способ 5: Использование команды nl

Команда числовой строки (nl) используется для отображения пронумерованных маркеров со строками файла:


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


Способ 6. Использование команды языка Perl:

Команда языка Perl также может использоваться для подсчета строк файлов в Linux, чтобы использовать команду Perl для подсчета строк файла «myfile.txt», выполните команду:


Способ 7: использование цикла While

Другим наиболее часто используемым методом подсчета количества строк в больших файлах является цикл while. Введите следующий скрипт bash в текстовый файл и сохраните его с расширением .sh:


Выполните файл bash с помощью команды bash:


В приведенном выше выводе при выполнении команды запрашивается имя файла, строки которого должны быть подсчитаны, вводится имя файла, в нашем случае это «myfile.txt», поэтому отображаются результаты. .

Заключение

Для расчета производительности программистов основным параметром является длина их кода, которую можно измерить, подсчитав строки файла кода. В Linux мы можем подсчитывать строки разными способами, которые обсуждаются в этой статье, наиболее часто используемым методом является метод команды wc.

Об авторе

Хаммад Захид

Я выпускник инженерного факультета, и моя страсть к ИТ привела меня к Linux. Теперь я учусь и делюсь своими знаниями со всем миром.

В любом коде или программе иногда возникает такая ситуация, когда нам нужно знать, насколько велики данные файла data. Мы можем получить это через количество строк в файле, вместо того, чтобы обращаться ко всем данным. Подсчет строк вручную может занять много времени. Таким образом, используются эти инструменты, которые облегчают нам получение желаемого результата. В этом руководстве будут рассмотрены некоторые распространенные и необычные способы подсчета количества строк в файле.

Для понимания этой концепции нам нужен текстовый файл. Чтобы мы применяли команды к этому конкретному файлу. Мы уже создали файл. Рассмотрим файл с именем file1.txt.


В противном случае сначала необходимо создать файл. Файл может быть создан многими способами. Сделаем это через эхо с угловыми скобками в команде.

Пример 1

Поскольку мы отображали содержимое файла с помощью команды cat в начале статьи. В этом примере подразумевается использование «-n» с командой cat. Вывод команды будет состоять из номера строки и текстового содержимого файла. Таким образом, мы получим общее количество строк в соответствующем файле.


На соответствующем изображении видно, что в файле 11 строк.

Аналогично, есть еще один пример, в котором мы использовали «nl» в команде. N покажет числа, а –l используется для перечисления всего содержимого с номером строки. Итак, команда.


Пример 2

В этом примере рассматривается использование команды «wc». Это используется для нахождения количества слов, байтов, строк и символов. Здесь мы получим только номера строк без текста. Чтобы получить результирующее значение, используйте «wc» с -l в команде. Это даст общее количество строк с именем файла в результате. Поэтому мы применим эту команду.


В результате видны как номер строки, так и данные. Теперь, если вы хотите отображать только общее количество строк без отображения имени файла. Затем, если вы хотите отображать только общее количество строк без отображения имени файла, вы можете использовать в команде левую угловую скобку. Здесь командная оболочка перенаправила файл file1.txt на стандартный ввод для команды wc –l.


Еще один способ использования команды «wc» — использовать ее с командой cat. Эта команда позволяет использовать «pipe» вместе с cat и wc -l. Содержимое будет действовать как вход для части содержимого после вертикальной черты в команде. Полученный вывод является параллельным в обоих случаях. Но способ использования другой.


Пример 3

В этом примере подробно рассматривается использование команды «sed». Редактор потока указывает, что он используется для преобразования текста файла. Это в основном используется в команде, где нам нужно найти нужный текст, а затем заменить его. «Sed» получает более одного аргумента для отображения количества строк. В этой команде мы будем использовать «sed», чтобы получить количество для соответствующего файла.

Мы будем использовать здесь два оператора, чтобы описать его использование с обоими.

Первый — это знак равенства. Мы будем использовать «sed», знак равенства (=) и опцию –n. Эта комбинация принесет пустые строки плюс нумерацию строк. Содержимое здесь отображаться не будет. Здесь отображаются только номера строк.


Во втором варианте мы будем использовать знак доллара в дополнение к знаку равенства. Эта комбинация используется с параметрами «sed» и «-n». В отличие от последнего примера, мы узнаем только общее количество строк, а не контекст.Иногда нам нужно иметь номер последней строки вместо номеров всех строк строк файла, ; для этого мы используем этот подход.


Пример 4

В команде используется awk для сбора общих чисел в строке. Все строки считаются записью. В разделе END мы увидим номер записи (NR). Переменная NR встроена в awk. Будет показан только последний номер. Таким образом, можно легко узнать общее количество строк в файле.

Пример 5

«Grep» означает регулярную печать глобальных выражений. «Grep» — это еще один способ найти имя файла или термины, связанные с текстом, внутри файла. «Grep» ищет определенные шаблоны в файле с помощью специальных символов, а также находит определенные выражения, которые соответствуют тем, которые присутствуют в команде, с помощью регулярных выражений.

Аналогично здесь используется ‘$’. Известно, что он находит и отображает конец строки. «-count» используется для подсчета всех строк, которые соответствуют выражению, присутствующему в файле. Таким образом, с помощью этой команды мы сможем добраться до конца файла и подсчитать количество строк содержимого.


Еще один способ использования команды grep — использовать ее с «.*» и –c. «-c» используется для подсчета всех строк, тогда как знак «*» подразумевает весь текст. Это означает подсчет всех номеров строк в тексте.


В этом типе мы использовали вместе -h и -c. Как мы знаем, c нужно подсчитывать, а –h выводит все совпадающие строки. Это означает, что будет отображаться последняя строка с именем файла.


Пример 6

Мы использовали «Perl» для подсчета строк во всем файле. «Perl» расширен как «Практический язык извлечения и составления отчетов». Это язык сценариев, такой как bash. Он работает как команда «awk». Он также печатает номер строки в конце, как показано в команде. Здесь знак «$» означает приближение к концу файла. «-lne» для строки.


Пример 7

Здесь мы попробуем считать цикл. Как и в языках программирования, мы часто используем циклы для подсчета в любой арифметической операции. Точно так же здесь мы будем использовать цикл while. Цикл показал условие перехода к концу, и процесс подсчета выполняется во всем теле while. Цикл будет работать таким образом, что входные данные считываются построчно, и каждый раз, когда значение count увеличивается, значение count каждый раз увеличивается. Мы берем отсчет в конце.

(( количество = $count + 1 ))


Заключение

Номера строк учитываются по-разному. В этой статье доказано, что для подсчета номера строки в файле мы можем использовать множество подходов, мы можем использовать множество подходов для подсчета номера строки в файле. Используя методологии «grep», «cat» и «awk», с помощью которых мы можем получить желаемый результат.

Об авторе

Акса Ясин

Я целеустремленный профессионал в области информационных технологий и обожаю писать. Я технический писатель и люблю писать для всех разновидностей Linux и Windows.

Читайте также: