6 способов подсчитать количество строк в файле Linux
Посчитайте линии, прикиньте размер.
Ключевые выводы
- Вы можете использовать команду wc с опцией «-l», чтобы узнать количество строк в файле (wc -l имя файла). Это также напечатает имя файла.
- Комбинация команды sed с опцией «-n» также может дать вам количество строк (sed -n '=' имя файла). Эта команда напечатает номера строк без содержимого файла.
- Запустите команду awk со встроенной переменной «NR», чтобы получить количество строк в файле (имя файла awk 'END {print NR}).
Хотите посчитать количество строк в файле Linux? Мы предоставим вам несколько разных способов сделать это. Подсчет количества строк дает информацию о том, насколько мал или велик данный файл.
Зачем считать строки в файле?
Как и все компьютерные файлы, файлы Linux бывают разных размеров. Некоторые файлы большие, некоторые маленькие. Пользователям Linux часто необходимо проверять размер файла, чтобы управлять дисковым пространством системы и избегать нехватки места. Один из способов сделать это — подсчитать количество строк в файле, хотя и грубо. Точно так же, как толщина книги обычно указывает на ее длину, количество строк в файле в некоторых ситуациях может дать вам относительное представление о ее размере.
Подсчет строк файла полезен по разным причинам. Вы можете проверить формат или структуру файла. Он также может измерять размер и сложность текстового файла, например файла исходного кода, файла конфигурации или файла журнала.
Подсчет строк может помочь вам фильтровать и анализировать вывод других команд. Например, можно проанализировать количество строк в файле системного журнала. Это поможет вам проверить приблизительное количество ошибок, присутствующих в файле системного журнала.
Подсчет строк также дает вам оценку общего количества элементов в каталоге. Подсчитывая количество строк в файле с течением времени, вы можете отслеживать изменения в файле, например добавление или удаление строк. Это может быть полезно для отладки программного обеспечения или отслеживания изменений в документе.
Как подсчитать строки в файле в Linux
Linux предоставляет множество команд и инструментов, которые позволяют легко определить количество строк в файле. Некоторые из этих команд — wc, sed, grep и awk. Сценарий Bash также может помочь подсчитать количество строк в файле. Мы рассмотрим каждый из этих методов на примере.
1. Подсчитайте слова, строки и символы в файле с помощью wc
Вам нужен простой способ подсчета строк в файле? Просто используйте команду wc. Эта команда выводит количество слов, строк и символов в файле.
Давайте рассмотрим пример файла example.txt. Этот файл содержит список нескольких команд Linux для начинающих:
Чтобы подсчитать строки указанного файла с именем example.txt, добавьте флаг -l к команде wc, за которым следует имя файла:
wc -l example.txt
В приведенном выше выводе отображается только количество строк. Чтобы получить подробную информацию о файле, используйте команду wc без каких-либо опций. Команда wc без флагов выведет количество слов, строк и символов файла одной командой:
wc example.txt
Теперь предположим, что у вас есть три файла с именами example.txt, new.txt и new1.txt. Чтобы подсчитать количество строк в нескольких файлах, просто используйте команду wc с опцией -l, за которой следуют имена файлов.
wc -l example.txt new.txt new1.txt
Команда wc также может отображать количество строк всех файлов, присутствующих в каталоге. Для этого используйте команду wc с опцией -l, за которой следует оператор звездочки.
wc -l *
Как и во всех вышеперечисленных случаях, выходные данные показывают имя файла вместе с количеством строк. Чтобы показать количество строк без имени файла, запустите:
wc -l < example.txt
Здесь команда wc использует перенаправление ввода. Это передаст команде wc содержимое файла примера. Затем он напрямую подсчитывает строки, не отображая имя файла.
Другой способ подсчитать количество строк в файле — передать вывод команды cat по конвейеру с помощью команды wc -l.
cat example.txt | wc -l
2. Подсчет и отображение номеров строк файла с помощью sed
Команда sed, или потоковый редактор, — это важный инструмент командной строки для манипулирования текстом в Linux. Он выполняет различные операции с файлом, такие как вставка, удаление, замена или добавление текста. Команда sed принимает входные данные из файла или стандартного ввода.
Команда sed также может подсчитать общее количество строк указанного файла. Для печати номеров строк могут использоваться разные аргументы.
Запустите команду sed с опцией -n и знаком равенства, чтобы последовательно подсчитывать и отображать номера строк в отдельных строках.
sed -n '=' example.txt
Иногда получение общего количества строк более эффективно, чем получение отдельных номеров строк для каждой строки в файле. Команда sed с опциями -n и $= может подсчитать и отобразить общее количество строк в файле. $= обозначает последнюю строку файла. Это гарантирует, что на стандартный вывод выводится только номер строки.
Чтобы получить общее количество строк в файле, используйте:
sed -n '$=' example.txt
3. Использование grep для подсчета количества строк в файле
Команда grep специально используется для поиска шаблона внутри файла. Мало того, он также может дать нам общее количество строк, которые соответствуют или не соответствуют определенному шаблону. Определенный шаблон представляет собой регулярное выражение, указывающее, что искать.
Если вы не укажете файл, grep считывает данные из стандартного ввода.
Добавьте флаг -c к команде grep, чтобы определить количество строк, соответствующих определенному шаблону. Например, чтобы подсчитать строки в файле, содержащие слово «Команда», выполните:
grep -c Command example.txt
Также можно фильтровать и легко подсчитывать строки, не содержащие определенного слова или шаблона.
Для этого используйте флаг -v с grep:
grep -c -v awk example.txt
Существует еще один шаблон регулярного выражения (".*") со знаком точки и звездочки. Он соответствует любой строке, в которой отсутствует или более вхождений любого символа. В отличие от двух приведенных выше команд, она не ищет конкретное слово. Он просто подсчитывает и выводит количество строк в файле example.txt, содержащих один или несколько символов.
grep -c ".*" example.txt
Флаг -c гарантирует, что отображается только количество строк, а не фактическое содержимое строки, соответствующее шаблону.
Чтобы добавить имя файла в приведенный выше вывод, просто включите флаг -H:
grep -Hc ".*" example.txt
4. Распечатайте общее количество строк в файле с помощью awk.
Команда awk используется для обработки текста и в качестве инструмента для извлечения данных и составления отчетов. Он особенно эффективен при сопоставлении с образцом и обработке полей и записей.
Вы можете использовать команду awk для подсчета строк в файле. Он использует язык программирования AWK для печати общего количества записей (строк) в файле.
awk 'END {print NR}' example.txt
Данный awk-скрипт END {print NR} выполняется после обработки всех строк в файле example.txt. Сценарий дает команду awk вывести значение NR, которое представляет общее количество обработанных записей (строк).
5. Перечисление и подсчет строк в файле с помощью команды nl
Команда nl добавляет номера строк к указанному содержимому файла. Это полезно для просмотра или печати файлов с номерами строк. Вы можете использовать команду nl с именем файла для подсчета строк в указанном файле.
nl example.txt
Эта команда отобразит как номера строк, так и их содержимое в файле example.txt.
Однако это неэффективный способ получить количество строк в файлах, особенно для больших файлов. Он включает в себя дополнительную обработку и рендеринг выходных данных, которые не нужны для конкретной задачи подсчета строк. Представьте себе файл с тысячами строк, и вам нужно прокрутить его до конца, чтобы узнать общее количество строк.
Если вы хотите узнать общее количество строк без какой-либо другой информации, передайте вывод команды nl с помощью Tail и awk.
nl example.txt | tail -1 | awk '{print $1}'
Команда nl добавляет номер строки в начале каждой строки. Затем выходные данные команды nl передаются по конвейеру с командой Tail, которая отображает последнюю строку входных данных. Параметр -1 указывает команде Tail отображать только одну строку. До сих пор у вас есть вывод «10 uname Command».
Затем эти выходные данные передаются в качестве входных данных для команды awk, которая печатает определенное поле из входных данных. Аргумент {print $1} указывает команде awk напечатать первое поле, которое является номером строки. Например, если введено «10 uname Command», команда awk напечатает первое поле, которым в данном случае является номер строки 10.
6. Использование сценария Bash для подсчета количества строк в файле
Сценарии Bash, удобный инструмент в системах Linux, обычно используются для автоматизации задач. Вы также можете использовать его для подсчета строк в файле. Вы можете написать собственный сценарий Bash, который использует команду wc для вывода количества строк в файле:
#!/bin/bash
filename=$1
linecount=$(wc -l < "$filename")
echo "The file $filename has $linecount lines."
Этот сценарий Bash использует команду wc с флагом -l. Команда wc получает количество строк и сохраняет его в переменной linecount. В конце сценария на терминал отправляется сообщение, в котором отображается имя файла и соответствующее количество строк.
Чтобы использовать приведенный выше скрипт, просто сохраните его как файл с расширением «.sh» (count_lines.sh) и сделайте его исполняемым с помощью chmod:
chmod +x count_lines.sh
Теперь запустите сценарий, используя нотацию ./, за которой следует имя сценария:
./count_lines.sh example.txt
Вы получите общее количество строк файла example.txt в стандартный вывод.
Знайте свою файловую систему Linux изнутри и снаружи
В Linux важно знать файлы в вашей системе. Подобно подсчету строк, подсчет файлов Linux в каталоге также помогает более эффективно управлять системой. Это поможет вам узнать, какие файлы занимают больше всего места, какие удалить, а какие оставить.
Знание файловой структуры Linux также важно. Рассмотрим основную основу файлов Linux — индексные дескрипторы. Если в вашем организме они закончатся, у вас будет трудный день. Их количество очень ограничено, и они хранят важные данные в вашей системе.
Знание этого не только поможет вам управлять задачами и выполнять их, но также облегчит задачи по обслуживанию системы.