как узнать количество строк в файле bash
5 практических примеров команды wc в Linux: количество строк, слов и символов
Главное меню » Операционная система Linux » 5 практических примеров команды wc в Linux: количество строк, слов и символов
Что такое команда wc в Linux?
Команда wc отображает статистическую информацию о файле, такую как количество строк, слов, символов.
Общая информация: wc означает количество слов.
Синтаксис команды wc:
Команда wc имеет следующие параметры:
5 практических примеров команды wc в Linux
В этом примере мы собираемся использовать файлы alex.txt и andreyex.txt. Вы можете загрузить эти файлы с помощью команды wc указанные в примерах этой статьей.
Если вы используете команду wc только с именами входных файлов, без каких-либо параметров, она будет показывать вам количество строк, слов и байтов одновременно.
В приведенном выше виде:
Теперь, когда вы знаете параметры команды wc, давайте посмотрим некоторые примеры команды wc.
1. Подсчитайте количество строк в файле
Если вы просто хотите узнать количество строк в текстовом файле, вы можете использовать команду wc с опцией ‘l’. В основном, она подсчитывает количество строк в файле.
2. Подсчитайте количество слов в файле
Если вы просто хотите узнать количество слов в текстовом файле, вы можете использовать команду wc с опцией ‘w’. В ней будет отображаться количество слов с пробелами.
3. Подсчитайте количество байтов и символов в файле
Если это обычный текстовый файл, количество байтов и символов должно быть одинаковым. Но это будет отличаться для не текстовых файлов.
Чтобы отобразить количество байтов в файле, используйте команду wc с опцией ‘c’:
Чтобы отобразить количество символов в файле, используйте команду wc с опцией ‘m’:
Мы знаем, что вы, должно быть, думаете, что опция «c» больше подходит для задачи подсчета символов, но команды Unix/Linux всегда были странными.
4. Длина отображения самой длинной строки файла
Параметр «L» команды wc отображает длину (количество символов) самой длинной строки файла.
5. Отобразить количество строк, слов, символов для нескольких файлов.
Вы можете использовать более одного файла с командой wc. Она будет отображать выходные данные для каждого из файлов по одному вместе с общим количеством во всех файлах.
Например, если мы хотим отобразить количество строк из двух файлов, это будет выглядеть так:
Бонусный совет: используйте wc с другими командами, используя pipes (|)
То, что вы видели до сих пор, было простой пример команды wc. Вы можете дополнительно использовать wc с выводом других команд, используя pipes (|).
Например, вы можете перенаправить вывод команды ls на wc и, таким образом, что вы можете подсчитать общее количество файлов и подкаталогов в данной заданной директории.
Возможности безграничны. Вам просто нужно использовать ваши маленькие серые клетки для использования команды wc в различных ситуациях.
Возможно, вы заметили, что вывод команды wc состоит из имен файлов. Если вы просто хотите получить номер без имени файла, вы можете использовать его с командой cut и избавиться от имени файла из вывода.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
📜 Как посчитать строки в файле в UNIX / Linux
Есть несколько способов подсчета строк в файле.
Утилита wc отображает количество строк, слов и байтов, содержащихся в каждом входном файле, или в стандартном вводе (если файл не указан).
Итак, рассмотрим файл, показанный ниже:
Использование команды awk
Если вы хотите использовать awk для определения количества строк, используйте следующую команду awk:
Использование команды sed
Использование команды grep
Наш старый добрый друг “grep” также может быть использован для подсчета количества строк в файле.
В GNU grep вы можете использовать следующий синтаксис grep:
Вот еще одна версия команды grep для поиска количества строк.
Еще несколько команд
Наряду с приведенными выше командами полезно знать некоторые редко используемые команды для поиска количества строк в файле.
1. Используйте команду nl (фильтр нумерации строк), чтобы получить нумерацию каждой строки.
Это не очень точный способ узнать количество строк.
Но вы можете использовать awk или sed для подсчета последней строки.
4. Вы также можете использовать perl, чтобы найти количество строк:
Добавить комментарий Отменить ответ
• Свежие записи
• Категории
• itsecforu.ru
• Страны посетителей
IT is good
Узнать количество строк в файле Linux
Довольно частенько нужно подсчитать количество файлов при выводе в консоли BASH. Хорошо если файлов 10 единиц. Как быть если их сотни и у каждого файла сложное имя. Тут идеально подойдёт команда wc. Её наилучше использовать вместе с фильтром. Например с командой grep команда wc хорошо сочетается. Возможно подсчитать количество слов в документе.
С помощью команды wc вы можете подсчитать количество строк, слов и символов в указанном файле. Если указано более одного файла в инструктивной строке, то программа wc осуществляет подсчет строк, слов и символов в каждом файле и потом выдает общее число. Вы можете с помощью ключей указать либо подсчет лишь строк, или только слов, или символов. Синтаксис команды:
Подсчет строк, слов и знаков с помощью wc
Система отвечает строкой в следующем формате: l w c файл
Чтобы подсчитать количество строк, слов и символов в нескольких файлах, используйте следующий формат:
Система говорит следующим образом:
l w c файл1
l w c файл2
l w c total
Число строк, слов и символов для файл1 и файл2 отражается на отдельных строках. На последней строке отображается общее число строк, слов и знаков в двух файлах.
Подсчет данных в документе
wc text.txt
вывод: 40 149 947 text.txt
В первоначальной колонке содержится количество строк, во второй кол-во слов, в третьей кол-во знаков
Подсчёт данных в выводе командной строки Linux
Поиск количества файлов в директории Linux
Подсчет уникальных строк и дубликатов в текстовом файле Linux
Буквально сегодня на работе столкнулся с довольно простой задачей, состоящей из двух подзадач: 1) нужно было подсчитать в текстовом файле количество уникальных строк 2) подсчитать в уже другом файле количество строчек, которые дублируются.
С этими задачами я справился и после этого подумал — по какой причине бы не написать небольшой пост, вдруг кому-нибудь пригодится. Подсчитаем в нём количество уникальных строчек с помощью следующей команды:
В результате на экран выведено количество 2. Обе подзадачи решены достаточно простым способом. Записал небольшую демонстрацию кому забавно.
Подсчитать количество строк в файле Linux
Нет ничего проще, чем подсчитать количество строчек в файле.
Подсчитать общее количество строк в файлах (именованная область данных на носителе информации) по шаблону. Если же вам необходимо подсчитать количество строк нескольких файлов, можете использовать шаблон, например:
Команда Wc в Linux (подсчет количества строк, слов и символов)
В Linux и Unix-подобных операционных системах команда wc позволяет подсчитать количество строк, слов, символов и байтов в каждом заданном файле или стандартном вводе и распечатать результат.
В этом руководстве мы покажем вам, как использовать команду wc на простых и практических примерах.
Как использовать команду wc
Синтаксис команды wc следующий:
В простейшей форме при использовании без каких-либо опций команда wc выводит четыре столбца, количество строк, слов, количество байтов и имя файла для каждого файла, переданного в качестве аргумента. При использовании стандартного ввода четвертый столбец (имя файла) не отображается.
Например, следующая команда отобразит информацию о виртуальном файле /proc/cpuinfo :
Результат будет выглядеть примерно так:
При использовании стандартного ввода имя файла не отображается:
Чтобы отобразить информацию о более чем одном файле, передайте имена файлов в качестве аргументов, разделенных пробелом:
Команда предоставит вам информацию о каждом файле и строку, включая общую статистику:
Приведенные ниже параметры позволяют выбрать, какие счетчики будут печататься.
При использовании нескольких параметров счетчики печатаются в следующем порядке: новая строка, слова, символы, байты, максимальная длина строки.
Например, чтобы отобразить только количество слов, которые вы бы использовали:
Вот еще один пример, который напечатает количество строк и длину самой длинной строки.
Подсчитайте количество строк
В первом столбце указано количество строк, а во втором — имя файла:
Подсчитайте количество слов
Количество слов показано в первом столбце:
Примеры команд Wc
wc можно использовать в сочетании с другими командами через конвейер. Вот несколько примеров.
Подсчет файлов в текущем каталоге
Подсчитайте количество пользователей
Выводы
Команда wc означает «подсчет слов» и имеет довольно простой синтаксис. Он позволяет подсчитывать количество строк, слов, байтов и символов в одном или нескольких текстовых файлах.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Bash-скрипты, часть 3: параметры и ключи командной строки
Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.
Наиболее распространённый способ передачи данных сценариям заключается в использовании параметров командной строки. Вызвав сценарий с параметрами, мы передаём ему некую информацию, с которой он может работать. Выглядит это так:
В данном примере сценарию передано два параметра — «10» и «20». Всё это хорошо, но как прочесть данные в скрипте?
Чтение параметров командной строки
Оболочка bash назначает специальным переменным, называемым позиционными параметрами, введённые при вызове скрипта параметры командной строки:
Запустим сценарий с параметрами:
Вот что он выведет в консоль.
Вывод параметров, с которыми запущен скрипт
Обратите внимание на то, что параметры командной строки разделяются пробелами.
Взглянем на ещё один пример использования параметров. Тут мы найдём сумму чисел, переданных сценарию:
Запустим скрипт и проверим результат вычислений.
Сценарий, который находит сумму переданных ему чисел
Параметры командной строки не обязательно должны быть числами. Сценариям можно передавать и строки. Например, вот скрипт, работающий со строкой:
Он выведет то, что мы от него ожидаем.
Сценарий, работающий со строковым параметром
Что если параметр содержит пробелы, а нам надо обрабатывать его как самостоятельный фрагмент данных? Полагаем, если вы освоили предыдущие части этого руководства, ответ вы уже знаете. Заключается он в использовании кавычек.
Если скрипту надо больше девяти параметров, при обращении к ним номер в имени переменной надо заключать в фигурные скобки, например так:
Проверка параметров
Если скрипт вызван без параметров, но для нормальной работы кода предполагается их наличие, возникнет ошибка. Поэтому рекомендуется всегда проверять наличие параметров, переданных сценарию при вызове. Например, это можно организовать так:
Вызовем скрипт сначала с параметром, а потом без параметров.
Вызов скрипта, проверяющего наличие параметров командной строки
Подсчёт параметров
В результате скрипт сообщит о том, что ему передано 5 параметров.
Подсчёт количества параметров в скрипте
Эта переменная даёт необычный способ получения последнего из переданных скрипту параметров, не требующий знания их количества. Вот как это выглядит:
Вызовем скрипт и посмотрим, что он выведет.
Обращение к последнему параметру
Захват всех параметров командной строки
Рассмотрим разницу между этими переменными на примерах. Сначала взглянем на их содержимое:
Как видно, при выводе обеих переменных получается одно и то же. Теперь попробуем пройтись по содержимому этих переменных в циклах для того, чтобы увидеть разницу между ними:
Взгляните на то, что скрипт вывел в консоль. Разница между переменными вполне очевидна.
Команда shift
Использовать команду shift в bash-скриптах следует с осторожностью, так как она, в прямом смысле слова, сдвигает значения позиционных параметров.
Использование команды shift для перебора параметров
Ключи командной строки
Ключи командной строки обычно выглядят как буквы, перед которыми ставится тире. Они служат для управления сценариями. Рассмотрим такой пример:
И проанализируем то, что он выведет в терминал.
Обработка ключей в скрипте
Как различать ключи и параметры
Часто при написании bash-скриптов возникает ситуация, когда надо использовать и параметры командной строки, и ключи. Стандартный способ это сделать заключается в применении специальной последовательности символов, которая сообщает скрипту о том, когда заканчиваются ключи и начинаются обычные параметры.
Эта последовательность — двойное тире (—). Оболочка использует её для указания позиции, на которой заканчивается список ключей. После того, как скрипт обнаружит признак окончания ключей, то, что осталось, можно, не опасаясь ошибок, обрабатывать как параметры, а не как ключи. Рассмотрим пример:
Этот сценарий использует команду break для прерывания цикла while при обнаружении в строке двойного тире.
Вот что получится после его вызова.
Обработка ключей и параметров командной строки
Как видно, когда скрипт, разбирая переданные ему данные, находит двойное тире, он завершает обработку ключей и считает всё, что ещё не обработано, параметрами.
Обработка ключей со значениями
По мере усложнения ваших скриптов, вы столкнётесь с ситуациями, когда обычных ключей уже недостаточно, а значит, нужно будет использовать ключи с некими значениями. Например, вызов сценария в котором используется подобная возможность, выглядит так:
Скрипт должен уметь определять, когда вместе с ключами командной строки используются дополнительные параметры:
Вызовем этот скрипт в таком виде:
Посмотрим на результаты его работы.
Обработка параметров ключей
Использование стандартных ключей
При написании bash-скриптов вы можете выбирать любые буквы для ключей командной строки и произвольно задавать реакцию скрипта на эти ключи. Однако, в мире Linux значения некоторых ключей стали чем-то вроде стандарта, которого полезно придерживаться. Вот список этих ключей:
-a Вывести все объекты.
-c Произвести подсчёт.
-d Указать директорию.
-e Развернуть объект.
-f Указать файл, из которого нужно прочитать данные.
-h Вывести справку по команде.
-i Игнорировать регистр символов.
-l Выполнить полноформатный вывод данных.
-n Использовать неинтерактивный (пакетный) режим.
-o Позволяет указать файл, в который нужно перенаправить вывод.
-q Выполнить скрипт в quiet-режиме.
-r Обрабатывать папки и файлы рекурсивно.
-s Выполнить скрипт в silent-режиме.
-v Выполнить многословный вывод.
-x Исключить объект.
-y Ответить «yes» на все вопросы.
Если вы работаете в Linux, вам, скорее всего, знакомы многие из этих ключей. Использовав их в общепринятом значении в своих скриптах, вы поможете пользователям взаимодействовать с ними, не беспокоясь о чтении документации.
Получение данных от пользователя
Ключи и параметры командной строки — это отличный способ получить данные от того, кто пользуется скриптом, однако в некоторых случаях нужно больше интерактивности.
Эта команда позволяет принимать введённые данные либо со стандартного ввода (с клавиатуры), либо используя другие дескрипторы файлов. После получения данных, эта команда помещает их в переменную:
Обработка пользовательского ввода
При вызове read можно указывать и несколько переменных:
Вот что выведет скрипт после запуска.
Несколько переменных в команде read
Использование переменной среды REPLY
Ограничение времени на ввод данных
Ввод паролей
Вот как отработает этот скрипт.
Ввод конфиденциальных данных
Чтение данных из файла
Напишем скрипт, в котором используется только что описанный подход к чтению файлов.
Посмотрим на него в деле.
Чтение данных из файла
Тут мы передали в цикл while содержимое файла и перебрали все строки этого файла, выводя номер и содержимое каждой из них.
Итоги
Сегодня мы разобрали работу с ключами и параметрами командной строки. Без этих средств диапазон использования скриптов оказывается чрезвычайно узким. Даже если скрипт написан, что называется, «для себя». Тут же мы рассмотрели подходы к получению данных от пользователя во время выполнения программы — это делает сценарии интерактивными.
В следующий раз поговорим об операциях ввода и вывода.
Уважаемые читатели! Спасибо вам за то, что делитесь опытом в комментариях к предыдущим частям этого цикла материалов. Если вам есть что сказать об обработке всего того, что можно передать в скрипт при запуске или во время его работы, уверены, многим будет интересно об этом почитать.