- Cat вывести определенную строку
- Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- Re: Выбор и вывод определённой строки в файле
- С помощью команды Linux «cat», как показать только определенные строки по номеру
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Работа с текстовыми выводами в Linux
- Команда cat
- Команда cut
- Команда expand
- Команда fmt
- Команда head
- Команда od
- Команда join
- Команда less
- Команда nl
- Команда paste
- Команда pr
- Команда sed
- Команда sort
- Команда split
- Команда tail
- Команда tr
- Команда unexpand
- Команда uniq
- Команда wc
Cat вывести определенную строку
Простейший способ вывести текст — использование стандартного вывода. Это удобно для быстрого просмотра части текста, или для передачи ее другим инструментам командной строки.
Многие еще используют для вывода текстовых файлов утилиту 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′, введите:
$ sed ‘/Chapter 3/,/Chapter 4/p’ book-draft [Enter]
Источник
Выбор и вывод определённой строки в файле
Допустим есть файл /etc/file с содержанием:
test1 test2
test3 test4
Мне нужно вывести в консоль первое слово из второй строки из этого файла, как это можно реализовать без grep и egrep. Знаю такую замечательную вещ как awk но она не умеет работать со строкми, тоесть если я напишу cat /etc/file | awk ‘
test1
test3
Есть ли какая нибудь программка типа awk только которая позволяет находить не слово в строке а саму строку?
Re: Выбор и вывод определённой строки в файле
как вариант: cat /etc/file | sed -n ‘2p’ | awk ‘
Re: Выбор и вывод определённой строки в файле
Re: Выбор и вывод определённой строки в файле
А зачем cat? Можно просто sed -n 2p /etc/file | awk ‘
Re: Выбор и вывод определённой строки в файле
>Знаю такую замечательную вещ как awk но она не умеет работать со строкми,
Головой не ударялся?
awk ‘NR==1
Re: Выбор и вывод определённой строки в файле
оно умеет работать со строками 🙂
cat /etc/file | awk ‘
Re: Выбор и вывод определённой строки в файле
Источник
С помощью команды Linux «cat», как показать только определенные строки по номеру
Если я использую cat -n text.txt для автоматической нумерации строк, как я тогда использую команду, чтобы показать только определенные пронумерованные строки.
Чтобы напечатать одну строку (5)
Чтобы напечатать несколько строк (5 и 8)
Для печати определенного диапазона (5 — 8)
Чтобы напечатать диапазон с другой определенной линией (5 — 8 и 10)
Один из способов сделать это с помощью sed :
где 11 — номер строки, которую вы хотите удалить.
Или удалить все кроме 11
Диапазоны также возможны:
И cat -n даже не нужно:
Вы можете использовать awk прямо вверх.
заменив ‘1’ на нужный номер строки.
В зависимости от целей мне нравится голова или grep
cat /var/log/syslog -n | head -n 50 | tail -n 10
вернет строки с 41 по 50.
cat /var/log/syslog -n | grep » 50″ -b10 -a10
будут показаны строки с 40 по 60. Проблема с методом grep заключается в том, что вы должны использовать учетную запись для заполнения номеров строк (обратите внимание на пробел)
Оба довольно удобны для анализа файлов журнала.
Как другие показали вам, нет необходимости использовать cat -n . Другие программы сделают это за вас. Однако, если вам действительно нужно проанализировать вывод cat -n и показать только определенные строки (например, 4-8, 12 и 42), вы можете сделать:
In awk , $1 является первым полем, поэтому эта команда печатает все строки, чьи первые поля: i) от 4 до 8 (включительно) или ii) 12 или iii) 42.
Если вы также хотите удалить добавленное поле, cat -n чтобы получить исходные строки из файла, вы можете сделать:
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Работа с текстовыми выводами в Linux
10 минут чтения
Цель стати разобраться с текстовыми потоками. А также рассмотреть фильтрование текстовых выводы логов их редактирование, журналов сообщений и т.д. Проще говоря, рассмотреть фильтрация и корректировка выводимого на экран текста. Текстовый поток так называется, потому что это выводимая информация может быть не просто статичный текстовый файл, а те текстовые файлы, которые постоянно меняются или дополняются в режиме реального времени.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Список стандартных команд, которые понадобятся для достижения цели:
Для начала создадим пару текстовых файлов. Переходим в домашнюю корневую папку пользователя 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. По сути это команда, которая позволяет читать файл.
Можно посмотреть работу ее на примере. Например, 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
Источник