Как вывести строки с 15 по 35 в терминале их под терминала в linux?
Интересует как сделать :
-вывести строки с 15 по 35 и записать в файл 15-35_app_log.txt
-дописать в файл 15-35_app_log.txt строку 36, переименовать файл соотв.
- Вопрос задан более трёх лет назад
- 27080 просмотров
Комментировать
Решения вопроса 2
Знаю и умею всё
Можно проще, одной командой, и дельты в голове для tail считать не надо
cat sourcefile.txt | sed -n 15,35p
Ответ написан более трёх лет назад
Нравится 4 7 комментариев
Anatoliy Farsonov @vvrider Автор вопроса
может подскажите как дописать в файл с текстом ( не удаляя его содержимое) определенную строку ( например под номером 36) . Спасибо за вариант, опробовал — работает) Надеюсь подсобите еще немного, вот взялся за unix, буду по немного продвигаться по shell scripting’y)
vvrider: Так как непонятно что вы имеете ввиду под дописать,
То дам универсальное решение:
Использовать команду cat и head с tail
Режем файл на два
cat sourcefile.txt | head -n 35 > tmp_start
cat sourcefile.txt | tail -n+36 > tmp_end
Создаем что хотим заинсертить
echo ‘LINE OR LINES I WHANT TO INSERT’ >tmp_insert
cat tmp_start tmp_insert tmp_end > result.txt
Аналогично реплейсить и тп
Как вывести первые 10 строк linux
Команда head позволяет задействовать одноименную утилиту для вывода нескольких первых строк из текстового файла или вывода другой утилиты. Если вы исполняете команду, которая выводит большой объем данных и при этом заинтересованы лишь в нескольких первых строках вывода, эта команда — именно то, что вам нужно.
Базовый синтаксис команды выглядит следующим образом:
$ head [параметры] [файлы]
Утилита head может выводить как начальные строки вывода другой утилиты (в этом случае имен файлов не указывается), так и начальные строки одного или нескольких текстовых файлов с указанными именами. В том случае, если выводятся начальные строки нескольких файлов, их имена упоминаются в выводе. Утилита поддерживает ряд полезных параметров, а именно, параметр -n, позволяющий задать количество выводимых строк (по умолчанию выводится 10 строк), параметр -c, позволяющий задать количество выводимых байтов, параметр -q, позволяющий не добавлять информацию об именах файлов в вывод с их начальными строками, параметр -v, позволяющий всегда выводить информацию об именах файлов, а также параметр -z, позволяющий выводить символы завершения строк вместо символов перехода на новые строки (это полезно для использования утилиты со стороны других утилит).
Примеры использования
Вывод первых десяти строк текстового файла
Для вывода первых десяти строк текстового файла достаточно использовать утилиту head без каких-либо параметров:
$ head 1342.txt
PRIDE AND PREJUDICE
It is a truth universally acknowledged, that a single man in possession
Очевидно, что утилита вывела первые 10 строк файла.
Вывод заданного количества строк текстового файла
Для вывода заданного количества строк текстового файла следует использовать параметр -n:
$ head -n 3 1342.txt
PRIDE AND PREJUDICE
Теперь утилита вывела лишь необходимые три строки.
Вывод заданного количества байтов файла
Для того, чтобы вывести заданное количество байтов вместо заданного количества строк, достаточно использовать параметр -c таким же образом, как ранее использованный параметр -n:
$ head -c 23 1342.txt
PRIDE AND PREJUDICE
В первые 23 байта вошла первая строка текстового файла с символом перехода на новую строку.
Обработка вывода других утилит
Для того, чтобы вывести лишь первые строки вывода другой утилиты, достаточно использовать простой конвейер командной оболочки и не указывать имен файлов:
$ cat 1342.txt | head -n 3
PRIDE AND PREJUDICE
Утилита cat читает все содержимое текстового файла, а утилита head выполняет роль фильтра, выводя лишь три первые строки этого содержимого.
Вывод первых строк нескольких файлов
$ head -n 3 1342.txt 74.txt
==> 1342.txt PRIDE AND PREJUDICE
==> 74.txt THE ADVENTURES OF TOM SAWYER
Теперь утилита добавляет в вывод имена текстовых файлов для того, чтобы не возникало путаницы; в остальном она работает точно так же.
Как вывести первые 10 строк linux
Простейший способ вывести текст — использование стандартного вывода. Это удобно для быстрого просмотра части текста, или для передачи ее другим инструментам командной строки.
Многие еще используют для вывода текстовых файлов утилиту 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]
Alex Otwagin 2002-12-16
Утилита head в примерах Unix/Linux
Команда «head» в Unix или Linux системах используется для печати «N» линии из файла в терминал. Синтаксис команды head является таким:
head [options] [files]
Параметры команды head:
- c : Выводит первые «N» байт файла; С ведущим «-«, печатает все, кроме последних N байт файла.
- n : Выводит первые N строк; С ведущим «-«, печатает все, но последние N строк каждого файла.
Утилита head в примерах Unix/Linux.
В этой статье «Утилита head в примерах Unix/Linux» я расскажу как использовать утилиту head и на готовых примерах покажу как это работает.
Создайте следующий файл use_head.txt в операционной системе Linux или Unix для практикующих примеров со следующим содержанием:
# cat /home/captain/use_head.txt Unix Linux MacOs FeeBSD debian CentOS
Вывод первых 10 строк.
По умолчанию, команда head выводит первые 10 строк из файла:
# head /home/captain/use_head.txt
Показать первые N строк.
Используйте опцию «-n», чтобы напечатать первые «N» строк из файла. Следующий пример выведет первые 2 строки из файла:
# head -n2 /home/captain/use_head.txt Unix Linux MacOs FeeBSD
Пропустить последние N строк.
Вы можете пропустить последние N строк из файла и распечатать оставшиеся линии. В следующем примере я пропущу последние 2 строки и выведу оставшиеся строки:
# head -n-2 /home/captain/use_head.txt Unix Linux
Распечатать первые N байт.
Используйте опцию «-c», чтобы напечатать первые N байт из файла. Следующий пример печатает первые 4 байта из файла:
# head -c4 /home/captain/use_head.txt Unix
Пропустить вывод последних N байт.
Используйте ведущий параметр «-«, чтобы пропустить вывод последних N байт:
# head -c-6 /home/captain/use_head.txt Unix Linux MacOs FeeBSD
Вывести строки между М и N линиями.
Вы можете комбинировать команду head и выводить строки с определенным диапазоном M и N. Следующая команда выведет строки между 4-й и 9-й строкой:
# head -n9 /home/captain/use_head.txt | tail -4 Unix Linux MacOs FeeBSD debian CentOS
Моя тема «Утилита head в примерах Unix/Linux» подошла к завершению.