Вывести строки файла linux

Обновлено: 04.07.2024

Простейший способ вывести текст - использование стандартного вывода. Это удобно для быстрого просмотра части текста, или для передачи ее другим инструментам командной строки.

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

Используйте опцию `-v' для cat, чтобы вывести символы, не отображаемые на печати, например, управляющие символы. При указанной опции cat выводит эти символы в нотации ``с крышкой'' , т.е. они представляются сочетанием `^' и символа, соответствующего управляющему символу (например, символ звукового сигнала будет представлен как `^G' ).

Чтобы вывести управляющие символы файла `translation', введите:

$ cat -v translation | less [Enter]

Чтобы визуально отобразить конец строки в каждой строке, используйте опцию `-E'; она приведет к тому, что в конце каждой строки появится символ `$' .

Полезной является опция `-T', которая выводит все табуляции в виде `^I' .

Опция `-A' комбинирует все три вышеуказанные опции - как если бы Вы указали опции с помощью `-vET'.

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

Чтобы вывести первые десять строк файла `placement-list', введите:

$ head placement-list [Enter]

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

Чтобы вывести первую строку файла `placement-list', введите:

$ head -1 placement-list [Enter]

Чтобы вывести 66 строк от начала файла `placement-list', введите:

$ head -66 placement-list [Enter]

Чтобы вывести определенное число символов, а не строк, укажите число символов для вывода через аргумент опции `-c'.

Чтобы вывести первый символ файла `placement-list', введите:

$ head -c1 placement-list [Enter]

Утилита tail работает подобно head, но выводит последнюю часть своего ввода. Как и в head, по умолчанию выводятся десять строк.

Чтобы вывести последние десять строк файла `placement-list', введите:

$ tail placement-list [Enter]

Чтобы вывести последние четырнадцать строк файла `placement-list', введите:

$ tail -14 placement-list [Enter]

Иногда требуется просматривать конец файла непрерывно; это полезно для ``растущих'' файлов, записываемых другими процессами. Чтобы непрерывно просматривать конец файла, используйте tail с опцией `-f'. Нажмите Ctrl-c для прекращения просмотра.

Чтобы непрерывно просматривать конец файла `access_log', введите:

$ tail -f access_log [Enter]

Чтобы вывести на экран определенную строку из файла, используйте утилиту sed. Укажите в кавычках номер нужной строки и сочетание `!d'. Вторым аргументом должно быть имя файла.

Чтобы вывести строку 47 из файла `placement-list', введите:

$ sed '47!d' placement-list [Enter]

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

Чтобы вывести строки с 47 по 108 из файла `placement-list', введите:

$ sed '47,108!d' placement-list [Enter]

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

Чтобы вывести десятую строку файла `placement-list', введите:

$ head placement-list tail -1 [Enter]|

Чтобы вывести пятую и четвертую строки с конца файла `placement-list', введите:

$ tail -5 placement-list head -2 [Enter]|

Чтобы вывести 500-й символ файла `placement-list', введите:

$ head -c500 placement-list tail -c1 [Enter]|

Чтобы вывести первый символ пятой строки файла `placement-list', введите:

$ head -5 placement-list tail -1 | head -c1 [Enter]|

Вы можете использовать sed для выделения текста между строками определенного вида и вывода выделенного текста или всего текста, кроме выделенногог участка.Строки для поиска - это либо слова, либо регулярные выражения.

Для выделения определенного абзаца используйте опцию `-n' с указанием строки `'/first/,/last/p'', где first и last - границы выделения. Это полезно, например, для вывода отдельных глав или разделов текста, если Вы знаете способ его разделения.

Чтобы вывести текст из файла `book-draft' между строками `Chapter 3' и `Chapter 4', введите:

$ sed -n '/Chapter 3/,/Chapter 4/p' book-draft [Enter]

Чтобы вывести весь текст, кроме указанного участка, опустите опцию `-n'.

Чтобы вывести весь текст из файла `book-draft', кроме текста между строками `Chapter 3' и `Chapter 4', введите:

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

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

cat hello1.txt hello2.txt

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

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

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

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

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

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

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

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

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

Ну или bash script

Данный скрипт на 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

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

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

Linux_Deep_27.12-5020-09dff9.jpg

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

Просмотр текстового файла в Linux полностью

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

Представьте, что надо посмотреть содержимое файла с названием myfile.txt:

Также можно вместо имени прописать адрес (путь) к файлу:

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

terminal_linux_16_1-20219-fd57a5.jpg

Кроме того, при просмотре текстового файла в Linux мы можем отобразить номера строк. Для этого потребуется всего лишь использовать опцию -n :

terminal_linux_17_1-20219-bc46ed.jpg

Команда nl функционирует аналогично команде cat с опцией -n , выводя номера строк в столбце слева.

При необходимости вы можете сделать так, чтобы при выводе текстового файла в конце каждой строки отображался символ $ :

Вывод будет следующим:

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

terminal_linux_21_1-20219-6bcb32.jpg

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

Команда less обеспечит постраничный просмотр, что очень удобно. При этом: 1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать - (тире или минус) и количество строк:

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

Открыв текст, мы можем управлять его просмотром:

1-20219-f917a7.jpg

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

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

Команда head по умолчанию показывает лишь 10 первых строчек в текстовом файле в Linux:

Вот, что мы увидим:

Кстати, тут мы тоже можем открыть сразу несколько текстовых файлов в Linux одновременно. Вот просмотр сразу двух файлов:

Если же вас не интересуют все 10 строчек, то, как и в случае с cat, можно использовать опцию –n , цифрой указывая число строк к выводу:

В итоге мы вывели только пять строк:

По правде говоря, букву n можно и не использовать, достаточно просто передать цифру:

Кстати, выводить содержимое текстового файла в Linux можно не построчно, а посимвольно. Давайте зададим число символов, которое нужно вывести (используем опцию -с ):

Итак, выводим 45 символов:

Не верите, что их действительно 45? Проверить можно командой wc:

С «головой» разобрались, давайте поговорим про «хвост». Очевидно, что команда tail работает наоборот, выводя десять последних строк текстового Linux-файла:

Количество строк при выводе тоже можно менять. Однако в tail есть такая полезная опция, как -f . С её помощью содержимое текстового файла будет постоянно обновляться, в результате чего вы станете видеть изменения сразу (постоянно открывать и закрывать файл не придётся). Это весьма удобно, если вы хотите просматривать логи Linux в реальном времени:

Просматриваем содержимое файла по шаблону в Linux

На практике зачастую нам необходим не весь текстовый файл, а лишь несколько строк из него. Используя grep, мы можем вывести Linux-файл, предварительно отсеяв лишнее:

Команду можно применять и совместно с cat:

Давайте выведем из лога лишь предупреждения:

Есть и ряд полезных опций: -A , -B , -C . Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:

А теперь, то же самое, но до вхождения loop:

Можно по две строки как до, так и после loop:

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

Или выполним просмотр сжатого файла с прокруткой:

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Favorite

Добавить в избранное

Главное меню » Linux » Как отобразить определенные строки файла в командной строке Linux

Как отобразить определенные строки файла в командной строке Linux

К ак найти n-ую строку в файле в командной строке Linux? Как отобразить номер строки x для номера строки y?

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

Для отображения 13-й строки вы можете использовать комбинацию головы и хвоста:

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

Чтобы отобразить номера строк от 20 до 25, вы можете объединить команды head и tail следующим образом:

Или вы можете использовать команду sed следующим образом:

Подробное объяснение каждой команды следует далее. Мы также покажем использование команды awk для этой цели.

Отображение определенных строк с помощью команд head и tail

Это один из распространенных способов отображения выбранных строк. Нам легче запомнить и использовать.

Распечатать одну конкретную строку

Используйте комбинацию команды head и tail в следующей функции номер строки x:

Вы можете заменить x номером строки, которую хотите отобразить. Итак, допустим, вы хотите отобразить 13-ю строку файла.

Часть «head -x» команды получит первые x строк файлов. Затем он перенаправит этот вывод в команду tail. Команда tail отображает все строки, начиная с номера строки x.

Совершенно очевидно, что если вы возьмете 13 строк сверху, строки, начинающиеся с номера 13 до конца, будут 13-й строкой. Это логика этой команды.

Распечатать определенный диапазон строк

Теперь давайте возьмем нашу комбинацию команд head и tail, чтобы отобразить более одной строки.

Скажем, вы хотите отобразить все строки от х до у. Это включает в себя также x и y строки:

Читать Концепции системного администрирования Linux с необходимыми навыками. Часть 2

Давайте возьмем практический пример. Предположим, вы хотите напечатать все строки от строки № 20 до 25:

Используйте SED для отображения определенных строк

Мощная команда sed предоставляет несколько способов печати определенных строк.

Например, для отображения 10-й строки вы можете использовать sed следующим образом:

-n подавляет вывод, в то время как команда p печатает определенные строки. Прочитайте это руководство SED, чтобы узнать и понять его в деталях.

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

Чтобы отобразить все строки от номера строки x до номера строки y, используйте это:

Используйте AWK для печати определенных строк из файла

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

NR обозначает «текущий номер записи». Пожалуйста, прочитайте наше руководство по команде AWK для получения дополнительной информации.

Чтобы отобразить все строки от x до y, вы можете использовать команду awk следующим образом:

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

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

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