Linux вывести первую строку вывода

Содержание
  1. Peter Leung, «Командная строка: маленькие хитрости от Linux Commando»
  2. Выбираем нужные строки из файла с помощью sed
  3. Команда Head в Linux
  4. Синтаксис команды Head
  5. Как использовать команду головы
  6. Как отобразить определенное количество строк
  7. Как отобразить определенное количество байтов
  8. Как отображать несколько файлов
  9. Как использовать голову с другими командами
  10. Выводы
  11. Как в Linux вывести строку?
  12. Как вывести сходу информацию из двух созданных файлов?
  13. Как вывести некоторую строку файла в Linux?
  14. Как вывести 5-ый строку в Linux?
  15. Как вывести нужные строки в Linux из файла с помощью sed?
  16. ИТ База знаний
  17. Полезно
  18. Навигация
  19. Серверные решения
  20. Телефония
  21. Корпоративные сети
  22. Работа с текстовыми выводами в Linux
  23. Команда cat
  24. Команда cut
  25. Команда expand
  26. Команда fmt
  27. Команда head
  28. Команда od
  29. Команда join
  30. Команда less
  31. Команда nl
  32. Команда paste
  33. Команда pr
  34. Команда sed
  35. Команда sort
  36. Команда split
  37. Команда tail
  38. Команда tr
  39. Команда unexpand
  40. Команда uniq
  41. Команда wc

Peter Leung, «Командная строка: маленькие хитрости от Linux Commando»

Выбираем нужные строки из файла с помощью sed

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

Это очень просто сделать при помощи команды head:

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

Давайте попробуем команду sed ≈ редактор потока (STream Editor).

Моя первая попытка применить команду p (print) оказалась неудачной:

Обратите внимание, что редактор печатает весь файл, причем указанную первую строку печатает дважды. Почему? По умолчанию редактор перепечатывает на стандартный вывод каждую строку вводимого файла. Четко заданная команда 1p приказывает печатать первую строку. В итоге первая строка дублируется.

Чтобы этого не происходило нужно подавить дефолтный вывод при помощи опции -n, чтобы на выводе был только результат команды 1p:

Можно пойти другим путем и удалить из файла все строки, кроме первой:

где ‘1!d’ означает: если строка не является первой (!), то подлежит удалению. Обратите внимания на кавычки (одинарные). Они совершенно необходимы, так как без них конструкция 1!d вызовет последнюю запускавшуюся в шелле команду, начинающуюся с буквы d.

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

Интервал обозначается через запятую включительно.

А если строки не идут друг за другом, например, с первой по вторую и еще четвертую?

Если вам известны иные способы выбирать нужные строки из файлов, сообщите, пожалуйста, в комментариях.

Блестящий пример нестандартного подхода продемонстрировал в комментариях к этой статье некий Chris:

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

А правда, здорово! И никаких заумных команд не надо с их километровыми манами. Кстати так и нужные блоки подряд идущих строк можно извлекать.

Источник

Команда Head в Linux

Команда head выводит первые строки (по умолчанию 10 строк) одного или нескольких файлов или передаваемых данных в стандартный вывод.

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

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

Синтаксис команды head следующий:

  • OPTION — варианты головы . Мы рассмотрим наиболее распространенные варианты в следующих разделах.
  • FILE — Ноль или более имен входных файлов. Если ФАЙЛ не указан или если ФАЙЛ — — , head будет читать стандартный ввод.

Как использовать команду головы

В простейшей форме при использовании без каких-либо параметров команда head отобразит первые 10 строк.

Как отобразить определенное количество строк

Используйте параметр -n ( —lines ), за которым следует целое число, указывающее количество отображаемых строк:

Вы можете опустить букву n и использовать только дефис ( — ) и цифру (без пробелов между ними).

Чтобы отобразить первые 30 строк файла с именем filename.txt , введите:

Следующее приведет к тому же результату, что и приведенные выше команды:

Как отобразить определенное количество байтов

Параметр -c ( —bytes ) позволяет распечатать определенное количество байтов:

Например, чтобы отобразить первые 100 байтов данных из файла с именем filename.txt , введите:

Вы также можете использовать суффикс множителя после числа, чтобы указать количество отображаемых байтов. b умножает его на 512, kB умножает на 1000, K умножает на 1024, MB умножает на 1000000, M умножает на 1048576 и так далее.

Следующая команда отобразит первые пять килобайт (2048) файла filename.txt :

Как отображать несколько файлов

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

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

В этом примере показаны первые 20 строк файлов filename1.txt и filename2.txt :

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

Как использовать голову с другими командами

Команду head можно использовать в сочетании с другими командами, перенаправляя стандартный вывод из / в другие утилиты с помощью каналов.

Читайте также:  Беспроводной приемник xbox 360 для windows что это

Следующая команда будет хешировать переменную среды $RANDOM , отображать первые 32 байта и отображать случайную строку из 24 символов:

Выводы

К настоящему времени вы должны хорошо понимать, как использовать команду Linux head. Это дополнение к команде tail, которая выводит последние строки файла на терминал.

Источник

Как в Linux вывести строку?

Начнем с команды, с которой уже не однократно встречались, команда cat. Сначала посмотрим справку по данной команде с помощью man cat. Этая команда предназначена для объединения файлов и печати на стандартный вывод информации. Под стандартным выводом предполагается вывод на консоль информации. Так же можно увидеть, что у данной команды есть ключи.

Как вывести сходу информацию из двух созданных файлов?

cat hello1.txt hello2.txt

А в справке было написано, что команда сможет объединять содержимое файлов.

cat hello1.txt hello2.txt > hello3.txt
cat hello3.txt

Мы вывели на стандартный вывод (консоль) содержание файлов и передали то, что на экране в новый файл hello3.txt. А затем просто вывели на консоль.

Как вывести некоторую строку файла в Linux?

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

# cat filename | head -n98 | tail -n1

где head -n предлагает сделать нужную строку, а tail -n задает сколько строк показать перед нужной. В данном варианте показана будет только одна строка.

То есть если нам необходимо вывести какой-никакой то сегмент строк, скажем, строки с 10 по 20, то выражение будет иметь вид

# cat filename | head -n20 | tail -n11

Как вывести 5-ый строку в Linux?

Если я хочу извлечь пятую строку файла, то делаю так:
$ head -n 5 имя_файла | tail -n 1

Ну или bash script

#!/bin/bash
for i in $(find /etc/ -type f);
do cat $i | head -n5 | tail -n1 >>

Данный скрипт на bash хватит всё файлы из папки etc, с них берёт пятую строку и выводит в файл, который создаёт в домашнем каталоге, а затем сортирует.

Как вывести нужные строки в Linux из файла с помощью sed?

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

$ cat somefile.txt
Line 1
Line 2
Line 3
Line 4

Это весьма просто сделать при помощи команды head:

$ head -1 somefile.txt
Line 1

Для более сложных задачек, например, извлечь вторую и третью строки из того же файла, команда head не подходит. Подавайте попробуем команду sed ? редактор потока (STream Editor). Моя первая попытка применить команду p (print) очутилась неудачной:

$ sed 1p somefile.txt
Line 1
Line 1
Line 2
Line 3
Line 4

Обратите внимание, что редактор отпечатывает весь файл, причем указанную первую строку печатает дважды. Почему? По умолчанию редактор перепечатывает на типовой вывод каждую строку вводимого файла. Четко заданная команда 1p приказывает печатать первоначальную строку. В итоге первая строка дублируется. Чтобы этого не происходило нужно подавить дефолтный вывод при поддержки опции -n, чтобы на выводе был только результат команды 1p:

$ sed -n 1p somefile.txt
Line 1

Можно пойти иным путем и удалить из файла все строки, кроме первой:

$ sed ‘1!d’ somefile.txt
Line 1

где ‘1!d’ значит: если строка не является первой (!), то подлежит удалению. Обратите внимания на кавычки (одинарные). Они асбсолютно необходимы, так как без них конструкция 1!d вызовет последнюю запускавшуюся в шелле команду, начинающуюся с буквы d. Для извлечения многих строк, скажем, со второй по четвертую, можно поступить одним из следующих способов:

$ sed -n 2,4p somefile.txt
$ sed ‘2,4!d’ somefile.txt

Перерыв обозначается через запятую включительно. А если строки не идут друг за другом, например, с первоначальной по вторую и еще четвертую?

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Работа с текстовыми выводами в Linux

10 минут чтения

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

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Читайте также:  Лучший шрифт для linux kde

Список стандартных команд, которые понадобятся для достижения цели:

Для начала создадим пару текстовых файлов. Переходим в домашнюю корневую папку пользователя root. Переключение пользователя sudo su , и cd

. В любом текстовом редакторе создаем 2 файла hello1.txt и hello2.txt с содержанием как на скриншотах.

Первый. И второй ниже.

Команда cat

Начнем с команды, с которой уже не однократно встречались, команда cat. Сначала посмотрим справку по данной команде. man cat . Тут мы можем увидеть, что данная команда предназначена для объединения файлов и печати на стандартный вывод информации. Под стандартным выводом подразумевается вывод на консоль информации. Так же можно увидеть, что у данной команды есть ключи.

Самое простое применение данной команды. Вводим cat hello1.txt команда показывает то, что на скриншоте выше.

Проведем маленький эксперимент и выведем сразу информацию из двух созданных файлов.

А в справке было написано, что команда может объединять содержимое файлов. Попробуем:

Мы вывели на стандартный вывод (консоль) содержимое файлов и передали то, что на экране в новый файл hello3.txt. А затем просто вывели на консоль. Результат можно посмотреть на скриншоте ниже.

Если нам файл более не нужен можно воспользоваться командой для удаления файлов

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

Команда cut

Данная команда предназначена для удаления секций из строчек файлов. Если посмотреть на ключи, то мы можем увидеть, что данная команда может удалять по различным признакам. По полям, по символам, по байтам, это интересная команда, которая позволяет нам вырезать части из файлов. Небольшой пример:

Данной командой мы говорим, что при выводе на экран нам необходимо «вырезать» перечисленные символы и вывести оставшееся на экран. Замечу, что команда cut не является текстовым редактором и поэтому фалы не правит! А только правит вывод в консоль. Если посмотреть командой cat hello1.txt файл остался неизменным.

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

Мы посмотрели, как данная команда редактирует вывод, на практике мы можем редактировать колонки, столбцы, вывода в каком-то конкретном логе или таблице. Т.е. мы можем выводить на экран только то, что нам нужно. Например, у нас есть лог события, какого-то, мы можем вывести только дату и события, остальное все лишнее отрезать данной командой в выводе.

Команда expand

Данная команда редко используется. Она необходима для конвертации символов табуляции в пробелы. Пример: expand hello2.txt и все табуляции превратились в пробелы. На практики редко применяемая команда.

Команда fmt

Как написано в мануале это текст форматер. Это серьезная команда, она умеет форматировать вывод текста различными способами.

Теперь посмотрим, как данной командой пользоваться.

Например, написать fmt hello1.txt , как вы видите команда сделала вывод в одну строчку. Следовательно, команда без указания ключа, команда игнорирует все символы переноса каретки.

Т.е. все «enter» и перехода на новую строку он убрал.

Мы можем сказать, чтобы команда отформатировала текст так. чтобы на одной строке не было не более 5 символов, но это без переносов, если первое слово на 20 символов он его не перенесет, а если 2 слова по 2 символа, то оба оставит на этой строке.

Ничего не произошло, а если мы дадим fmt w 10 hello1.txt , то мы видим, что команда осуществила перенос. Таким образом можно просматривать длинные логи в удобном для нас виде, т. к. лог может уходить очень далеко в сторону, а через данную команду мы можем разбить на удобные абзацы для нас.

Команда head

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

Для изменения, количества выводимых строк необходимо использовать ключ n и за ним указать необходимое количество строк.

Команда od

Превращает файлы в другие форматы. Грубо говоря это программа конвертор. Редко используется на практике.

Используя данную команду по умолчанию, мы можем превратить файл в восьмеричный код od hello1.txt . Или с использованием ключа c превратить в формат ASCII, od c hello1.txt . это может понадобится для конвертации файла, например для другой машины со специфичным форматом данных.

Команда join

Данная команда, объединяет строчки файлов по общему полю. Для того, чтобы понять, как работает данная команда необходимо создать 2 текстовых файла touch <1,2>.txt . Создаем сразу 2 файла 1.txt и 2.txt. И с помощью редактора nano редактируем. При применении команды join мы видим произошло объединение по полю нумерации.

Это удобно, например, для слияния файлов, особенно логов, например, два файла логов и вам необходимо их сопоставить по времени.

Команда less

В описании команды говорится, что эта команда противоположна команде more. По сути это команда, которая позволяет читать файл.

Читайте также:  Команда date для windows

Можно посмотреть работу ее на примере. Например, cat /var/log/syslog при запуске этой, команды мы получим очень большой вывод на несколько экранов. Если мы воспользуемся командой less /var/log/syslog , то вывод даст возможность листать постранично, через pgdn. Согласитесь, это намного упрощает чтение и просмотр файла. Бывает такое, что работа идет в консоли, в которой нету прокрутки, через мышку, то в таком случае данная команда становится вообще не заменимой. Если посмотреть описание, данная команда еще умеет делать небольшой поиск по файлу.

Команда nl

Нумерация строк. Простой пример. Берем файл и говорим пронумеровать строки. На картинке наглядно показано, как работает команда.

Команда paste

Команда вставка умеет вставлять построчно вставлять какие-то строки в файлы. Объединяет строки файлов, как написано в мануале.

У нас есть 2 файла 1.txt и 2.txt. Команда join их объединяла по определенному полю. Если мы применим команду paste мы увидим, что команда paste объединила их построчно.

Т.е. это может быть очень удобно. У нас объединились первые строки, вторые строки и т.д. Например, если мы сопоставляем какие-нибудь события или файлы и т.д.

Команда pr

Данная команда конвертирует текстовые файлы для вывода на печать. Очень наглядно можно увидеть, как работает данная команда, если ее применить к большому файлу. Например, pr /var/log/syslog

Как можно убедится, команда разбила вывод на страницы и подготовила данный вывод для печати.

Команда sed

Потоковый редактор для фильтрации и трансформирования текста. Это практически полноценный текстовый редактор, но опять же он не редактирует файлы, а работает с выводом.

Как его использовать, пример следующий заменим в файле 2.txt слово socks на слово people получается примерно так:

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

Команда sort

Сортирует строки в файлах по какому-то признаку. Поработаем с файлом hello1.txt. Если мы применим команду к данному файлу sort hello1.txt, то мы увидим, что вывод отсортировал строчки по алфавиту. А если применить ключик r, то от сортируется в обратном порядке. Это удобно использовать так же в совокупности с другими командами, отсортировать лишнее.

Команда split

Данная команда бьет файл на куски. Даная команда работает следующим образом. Даная команда разбивает файл на части, но при этом исходный не меняет. Например разобьем по строчкам фал 1.txt. split -l 2 1.txt . Разбивку делаем на 2 строчки. И мы видим, что у нас исходный файл остался неизменным, а появилось еще 2 файла xaa и xab. Они как раз и содержат разбиение.

Данную команду удобно применять к большим файлам и использовать ключик для разбивки по размеру, например, по байтам b и указываем на какие куски разбить в байтах. Пример:

Команда tail

В отличии от команды head, данная команда показывает последнюю часть файла. Например, tail /var/log/syslog нам покажет последнюю часть лога событий.

Добавляем ключ -n и число, мы получим число последних событий, которых мы указали. Очень полезный ключ -f, который говорит показывать добавление в файл на «живую», т.е в реальном времени. Очень удобно для диагностики, события пишутся в лог и сразу выводится на экран. Например, запись лога прокси сервера. Прерывание такого режима ctr+C.

Команда tr

Переводит или удаляет символы. Посмотрим на прямом выводе текста. Введем echo Hello. Далее введем echo Hello | tr -t A-Z a-z и заглавные буквы будут заменены строчными. Echo Hello | tr -t l L и маленькие l будет заменены на L. Echo Hello | tr -d l и буквы l будут удалены.

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

Команда unexpand

Работает в противоположную сторону команде expand. Конвертирует пробелы в знаки табуляции.

Обычно работают в паре expand и unexpand, для раздвижения столбцов.

Команда uniq

Даная команда ищет уникальные и дублирующийся линии, т.е. она смотрит что у нас в строчках есть одинакового и разного. Для примера, я в файл 1.txt добавлю повторяющуюся строчку. И сделаю вывод uniq 1.txt команда покажет только уникальные строчки, а затем uniq c 1.txt и команда покажет строчки с числом повторений. Можно сказать, чтобы показала команда только дублирующиеся строчки uniq d 1.txt или неповторяющиеся uniq u 1.txt. Применение заключается в том. что если у нас есть файлы с повторяющееся информацией мы можем таким образом ее фильтровать.

Команда wc

Показывает число строк, байт, слов и т.д. для определенного файла. Например: wc 1.txt показывает 4 строки, 8 слов, 28 символов.

Можно использовать с ключом w покажет количество слов. И т.д., можно получить информацию полностью по папке:

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Оцените статью