Автоматическая нумерация строк
В отличие от других программ Microsoft 365, Excel не предоставляет кнопку для автоматического номера данных. Однако можно легко добавить последовательные числа в строки данных путем перетаскивания маркер заполнения для заполнения столбца последовательностью чисел или с помощью функции СТРОКА.
Совет: Если необходима более совершенная система автоматической нумерации и на компьютере установлено приложение Access, можно импортировать данные Excel в базу данных Access. В ней можно создать поле, которое автоматически генерирует уникальный номер при добавлении в таблицу новой записи.

В этой статье
- Заполнение столбца последовательностью чисел
- Нумерация строк с помощью функции СТРОКА
- Отображение или скрытие маркера заполнения
Заполнение столбца последовательностью чисел
- Выделите первую ячейку в диапазоне, который необходимо заполнить.
- Введите начальное значение последовательности.
- Введите значение в следующей ячейке, чтобы задать образец заполнения.
Совет: Например, если требуется задать последовательность 1, 2, 3, 4, 5. введите в первые две ячейки значения 1 и 2. Если необходимо ввести последовательность 2, 4, 6, 8. введите значения 2 и 4.
Примечание: В Excel 2013 и более поздних версиях кнопка Быстрый анализ отображается по умолчанию при выборе нескольких ячеек, содержащих данные. Для завершения этой процедуры кнопку можно проигнорировать.
Примечание: По мере перетаскивания маркера заполнения через ячейки Excel показывает предварительное значение. Чтобы изменить образец, перетащите маркер заполнения, удерживая нажатой правую кнопку мыши, а затем выберите образец.
Чтобы ввести последовательность в возрастающем порядке, перетащите маркер вниз или вправо. Чтобы ввести последовательность в убывающем порядке, перетащите маркер вверх или влево.
Совет: Если дескриптор заполнения не отображается, может потребоваться сначала отобразить его. Дополнительные сведения см. в статье Отображение или скрытие маркера заполнения.
Примечание: Эти числа не обновляются автоматически при добавлении, перемещении или удалении строк. Последовательную нумерацию можно обновить вручную, выбрав два числа в правильной последовательности и перетащив маркер заполнения в конец нумерованного диапазона.
Нумерация строк с помощью функции СТРОКА
- Введите в первую ячейку диапазона, который необходимо пронумеровать, формулу =СТРОКА(A1). Функция СТРОКА возвращает номер строки, на которую указана ссылка. Например, функция =СТРОКА(A1) возвращает число 1.
- Перетащите маркер заполнения , охватив диапазон, который необходимо заполнить.
Совет: Если дескриптор заполнения не отображается, может потребоваться сначала отобразить его. Дополнительные сведения см. в статье Отображение или скрытие маркера заполнения.
- Эти числа обновляются при сортировке данных. Последовательность может быть прервана при добавлении, перемещении или удалении строк. Последовательность можно обновить вручную, выбрав два числа в правильной последовательности и перетащив маркер заполнения в конец нумерованного диапазона.
- Если вы используете функцию СТРОКА и хотите, чтобы числа вставлялись автоматически при добавлении новых строк данных, преобразуйте диапазон данных в таблицу Excel. Все строки, добавленные в конец таблицы, последовательно нумеруются. Дополнительные сведения см. в статье Создание и удаление таблицы Excel на листе.
Для ввода определенных последовательных числовых кодов, например кодов заказа на покупку, можно использовать функцию СТРОКА вместе с функцией ТЕКСТ. Например, чтобы начать нумерованный список с кода 000-001, введите формулу =ТЕКСТ(СТРОКА(A1),»000-000″) в первую ячейку диапазона, который необходимо пронумеровать, и перетащите маркер заполнения в конец диапазона.
Отображение или скрытие маркера заполнения
По умолчанию маркер заполнения отображается, но его можно включить или отключить.
- В Excel 2010 и более поздних версиях перейдите на вкладку Файл , а затем выберите Параметры. В Excel 2007 нажмите кнопку Microsoft Office , а затем выберите Параметры Excel.
- В категории Дополнительно в разделе Параметры правки установите или снимите флажок Разрешить маркеры заполнения и перетаскивание ячеек, чтобы отобразить или скрыть маркер заполнения.
Примечание: Чтобы предотвратить замену существующих данных при перетаскивании маркера заполнения, убедитесь, что выбрано поле Оповещение перед перезаписью ячеек проверка. Если вы не хотите, чтобы Excel отображал сообщение о перезаписи ячеек, можно очистить это поле проверка.
Добавление и удаление номеров строк
В приложении Word поддерживается автоматический подсчет количества строк в документе и отображение рядом с ними соответствующих номеров. Это удобно, когда нужно обратиться к определенной строке документа, такого как сценарий или договор.
По умолчанию Word научит все строки документа (за исключением полей в таблицах, сносках, концевых сносках, текстовых полях и колонтитулах). Тем не менее, вы можете выбрать номера строк, которые нужно отобразить. Например, можно отобразить номера строк во всем документе или его части. Кроме того, вы можете отображать номера строк, например каждую десятую строку (10, 20, 30 и т. д.).
В этой статье
- Добавление номеров строк
- Удаление номеров строк
Добавление номеров строк
Номера строк можно добавить для всего документа или его части. Их можно просматривать только в режиме разметки страницы (режим указывается на вкладке Вид).
- Таблица считается одной строкой.
- Рисунок считается одной строкой.
- Если надпись располагается в тексте на странице, то она считается одной строкой. Если текст на странице обтекает надпись, то учитывается каждая строка текста. При этом строки текста внутри надписи не учитываются.
Добавление номеров строк во всем документе

- На вкладке Макет в группе Параметры страницы нажмите кнопку Номера строк.
Примечание: Если документ разбит на разделы и вы хотите добавить номера строк во весь документ, сначала нужно выбрать документ. На вкладке Главная в группе Редактированиенажмите кнопку выделитьвсе. Или нажмите сочетание клавиш CTRL + A.
- Чтобы нумерация строк была непрерывной во всем документе, выберите пункт Непрерывно.
- Чтобы нумерация строк начиналась с 1 на каждой странице, выберите пункт На каждой странице.
- Чтобы нумерация строк начиналась с 1 в каждом разделе, выберите пункт В каждом разделе.
- Чтобы выбрать один из дополнительных вариантов нумерации строк, например нумерацию с различными интервалами, выберите пункт Варианты нумерации строк, а затем на вкладке Источник бумаги нажмите кнопку Нумерация строк.
Добавление номеров строк в одном или нескольких разделах

- Щелкните внутри раздел или выделите несколько разделов.
- На вкладке Макет в группе Параметры страницы нажмите кнопку Номера строк.
- Выберите пункт Варианты нумерации строк. и откройте вкладку Источник бумаги.
- В списке Применить: выберите пункт к выделенным разделам.
- Нажмите кнопку Нумерация строк.
- Установите флажок Добавить нумерацию строк и задайте нужные параметры.
Удаление номеров строк
Можно удалить номера строк из всего документа, раздела или абзаца.

- Щелкните любое место в документе, разделе или абзаце, из которого нужно удалить номера строк. Чтобы удалить номера строк из нескольких разделов, выделите эти разделы.
- На вкладке Макет в группе Параметры страницы нажмите кнопку Номера строк.
- Выполните одно из указанных ниже действий.
- Чтобы удалить номера строк из раздела или всего документа, выберите пункт Нет.
- Чтобы удалить номера строк из отдельного абзаца, выберите пункт Запретить в текущем абзаце.
В этой статье
- Добавление номеров строк
- Удаление номеров строк
Добавление номеров строк
Номера строк можно добавить для всего документа или его части. Их можно просматривать только в режиме разметки страницы (режим указывается на вкладке Вид).
- Таблица считается одной строкой.
- Рисунок считается одной строкой.
- Если надпись располагается в тексте на странице, то она считается одной строкой. Если текст на странице обтекает надпись, то учитывается каждая строка текста. При этом строки текста внутри надписи не учитываются.
Добавление номеров строк во всем документе
- На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку Номера строк.
Примечание: Если документ разбит на разделы и вы хотите добавить номера строк во весь документ, сначала нужно выбрать документ. На вкладке Главная в группе Редактированиенажмите кнопку выделитьвсе. Или нажмите сочетание клавиш CTRL + A.
- Чтобы нумерация строк была непрерывной во всем документе, выберите пункт Непрерывно.
- Чтобы нумерация строк начиналась с 1 на каждой странице, выберите пункт На каждой странице.
- Чтобы нумерация строк начиналась с 1 в каждом разделе, выберите пункт В каждом разделе.
- Чтобы выбрать один из дополнительных вариантов нумерации строк, например нумерацию с различными интервалами, выберите пункт Варианты нумерации строк, а затем на вкладке Источник бумаги нажмите кнопку Нумерация строк.
Добавление номеров строк в одном или нескольких разделах
- Щелкните внутри раздел или выделите несколько разделов.
- На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку Номера строк.
- Выберите пункт Варианты нумерации строк. и откройте вкладку Источник бумаги.
- В списке Применить: выберите пункт к выделенным разделам.
- Нажмите кнопку Нумерация строк.
- Установите флажок Добавить нумерацию строк и задайте нужные параметры.
Удаление номеров строк
Можно удалить номера строк из всего документа, раздела или абзаца.
- Щелкните любое место в документе, разделе или абзаце, из которого нужно удалить номера строк. Чтобы удалить номера строк из нескольких разделов, выделите эти разделы.
- На вкладке Разметка страницы в группе Параметры страницы нажмите кнопку Номера строк.
- Выполните одно из указанных ниже действий.
- Чтобы удалить номера строк из раздела или всего документа, выберите пункт Нет.
- Чтобы удалить номера строк из отдельного абзаца, выберите пункт Запретить в текущем абзаце.
nl — нумерация строк
Программа nl — предназначена для решения простой задачи: она выполняет нумерацию строк. В простейшем случае использования nl напоминает команду cat -n:
[me@linuxbox ~]$ nl distros.txt | head
1 SUSE 10.2 12/07/2006
2 Fedora 10 11/25/2008
3 SUSE 11.0 06/19/2008
4 Ubuntu 8.04 04/24/2008
5 Fedora 8 11/08/2007
6 SUSE 10.3 10/04/2007
7 Ubuntu 6.10 10/26/2006
8 Fedora 7 05/31/2007
9 Ubuntu 7.10 10/18/2007
10 Ubuntu 7.04 04/19/2007
Так же, как cat, программа nl может принимать несколько имен файлов в аргументах командной строки или данные со стандартного ввода. Однако nl имеет ряд параметров и поддерживает простейшую форму разметки, обеспечивая более сложные способы нумерации.
nl поддерживает идею логических страниц. Это дает возможность начинать нумерацию на каждой странице заново. С помощью параметров можно определить номер первой строки и протяженность нумерации, а также формат номеров. Логическую страницу можно разбить на заголовок, тело и нижний колонтитул. В каждом разделе нумерация может начинаться с начала и/или использоваться разный формат нумерации. Если программе nl передать несколько файлов, она будет интерпретировать их как один поток текста. Разделы в потоке выделяются добавлением в поток немного странной разметки, как показано в табл. 21.1.
Таблица 21.1. Разметка nl
Начало заголовка логической страницы
Начало тела логической страницы
Начало нижнего колонтитула логической страницы
Каждый элемент разметки из представленных в табл. 21.1 должен находиться в отдельной строке. После обработки элемента программа nl удалит его из потока текста.
В табл. 21.2 перечислены наиболее часто используемые параметры nl.
Таблица 21.2. Наиболее часто используемые параметры nl
Стиль нумерации тела, где аргумент стиль может иметь следующие значения:
a — нумеровать все строки;
t — нумеровать только непустые строки. Этот стиль применяется по умолчанию;
n — не нумеровать;
регулярное выражение — нумеровать только строки, соответствующие простому регулярному выражению
Стиль нумерации нижнего колонтитула. По умолчанию имеет значение n (нет нумерации)
Стиль нумерации заголовка. По умолчанию имеет значение n (нет нумерации)
Шаг приращения номеров на странице. По умолчанию имеет значение 1
Формат номеров, где аргумент формат может иметь следующие значения:
ln — с выравниванием по левому краю, без ведущих нулей;
rn — с выравниванием по правому краю, без ведущих нулей. Используется по умолчанию;
rz — с выравниванием по правому краю, с ведущими нулями
Не сбрасывать нумерацию в начале каждой логической страницы
Добавить указанную строку в конец каждого номера строки, чтобы отделить его от текста строки. По умолчанию используется один символ табуляции
Номер первой строки на каждой логической странице. По умолчанию имеет значение 1
Ширина поля номера строки. По умолчанию имеет значение 6
Следует отметить, что на практике нумеровать строки приходится довольно редко, но мы можем использовать nl, чтобы посмотреть, как объединить несколько инструментов для решения более сложных задач. Возьмем за основу наши наработки, созданные в предыдущей главе для получения отчета о дистрибутивах Linux. Поскольку далее мы будем использовать программу nl, включим в текст разметку, отделяющую заголовок/тело/нижний колонтитул. Для этого откройте в текстовом редакторе сценарий для sed из предыдущей главы, добавьте в него строки с разметкой, как показано ниже, и сохраните сценарий в файле с именем distros-nl.sed:
# Сценарий для sed, создающий отчет о дистрибутивах Linux
Linux Distributions Report
Name Ver. Released
Новый сценарий вставляет разметку логических страниц для nl и добавляет нижний колонтитул в конец отчета. Обратите внимание, что нам пришлось удвоить символы обратного слеша в разметке, потому что sed обычно интерпретирует их как экранирующие символы.
Теперь выведем улучшенный отчет, объединив sort, sed и nl:
[me@linuxbox ~]$ sort -k 1,1 -k 2n distros.txt | sed -f distros-nl.sed | nl
Linux Distributions Report
Name Ver. Released
1 Fedora 5 2006-03-20
2 Fedora 6 2006-10-24
3 Fedora 7 2007-05-31
4 Fedora 8 2007-11-08
5 Fedora 9 2008-05-13
6 Fedora 10 2008-11-25
7 SUSE 10.1 2006-05-11
8 SUSE 10.2 2006-12-07
9 SUSE 10.3 2007-10-04
10 SUSE 11.0 2008-06-19
11 Ubuntu 6.06 2006-06-01
12 Ubuntu 6.10 2006-10-26
13 Ubuntu 7.04 2007-04-19
14 Ubuntu 7.10 2007-10-18
15 Ubuntu 8.04 2008-04-24
16 Ubuntu 8.10 2008-10-30
Наш отчет является результатом объединения в конвейер нескольких команд. Сначала мы отсортировали список по названиям дистрибутивов и номерам версий (поля 1 и 2), затем обработали результат программой sed, добавив заголовок отчета (включая разметку логических страниц для nl) и нижний колонтитул. В заключение мы обработали результат с помощью программы nl, которая по умолчанию нумерует только строки в потоке текста, принадлежащие разделу с телом логической страницы.
Попробуйте повторить команду и поэкспериментировать с разными параметрами команды nl. Интересный результат, например, можно получить с помощью
Команда SED в Linux/Unix с примерами

Компиляция из двух смежных статей на тему использования команды sed для редактирования текстовых файлов, включая различные варианты поиска и замены шаблонов, а также всевозможные операции со строками. Идею к публикации этого гайда подал участник nronnie в комментарии к предыдущей статье, посвящённой работе с Bash.
SED – это потоковый редактор текста (от s tream ed itor), c помощью которого можно выполнять с файлами множество операций вроде поиска и замены, вставки или удаления. При этом чаще всего он используется именно для поиска и замены.
SED позволяет редактировать файлы, не открывая, что существенно ускоряет работу, чем при использовании того же vi. Помимо этого, SED поддерживает регулярные выражения, с помощью которых можно выполнять сложное сопоставление шаблонов.
Общий синтаксис команды sed выглядит так:
sed OPTIONS. [SCRIPT] [INPUTFILE. ]
Сами же варианты её использования мы рассмотрим на примере следующего отрывка текста:
$cat > geekfile.txt
unix is great os. unix is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Примеры команд
1. Замена заданного шаблона
Следующая команда заменит в целевом файле вхождения слова unix на linux :
$sed 's/unix/linux/' geekfile.txt
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Здесь s обозначает операцию замены, а прямые слэши выступают разделителями. В качестве искомого шаблона используется unix , а в качестве его замены linux .
По умолчанию команда sed заменяет первое вхождение шаблона в каждой строке, не затрагивая второе, третье и т.д.
2. Замена n-ого вхождения шаблона в строке
Вхождения, которые нужно заменить, обозначаются с помощью флагов /1 , /2 и т.д. К примеру, следующая команда заменит в каждой строке второе вхождение:
$sed 's/unix/linux/2' geekfile.txt
unix is great os. linux is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.linux is a multiuser os.Learn unix .unix is a powerful.
3. Замена всех вхождений шаблона в файле
Дя замены всех без исключения вхождений заданного шаблона используется глобальный флаг /g :
$sed 's/unix/linux/g' geekfile.txt
linux is great os. linux is opensource. linux is free os. learn operating system. linux linux which one you choose. linux is easy to learn.linux is a multiuser os.Learn linux .linux is a powerful.
4. Замена всех вхождений шаблона в строке начиная с n-ого
Для этого номер вхождения, с которого нужно начать, сопровождается флагом g . Следующая команда заменит в каждой строке третье, четвёртое и т.д. вхождения слова unix на слово linux :
$sed 's/unix/linux/3g' geekfile.txt
unix is great os. unix is opensource. linux is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn linux .linux is a powerful.
5. Заключение первых символов слов в скобки
Следующая команда заключит в скобки первый символ каждого слова:
$ echo "Welcome To The Geek Stuff" | sed 's/\(\b[A-Z]\)/\(\1\)/g'
(W)elcome (T)o (T)he (G)eek (S)tuff
6. Замена шаблона в конкретной строке
Можно ограничить выполнение команды sed нужной строкой:
$sed '3 s/unix/linux/' geekfile.txt
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Вышеприведённая команда заменяет заданное слово только в третьей строке.
7. Дублирование изменяемых строк
При добавлении флага /p команда выведет в терминал строки, где производится замена. Строки, в которых искомый шаблон отсутствует, не дублируются.
$sed 's/unix/linux/p' geekfile.txt
linux is great os. unix is opensource. unix is free os. linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
8. Вывод только строк с заменой
Если рядом с флагом /p добавить ключ -n , в терминале отобразятся только строки, где выполнялась замена. В данном случае -n отключает дублирующее поведение флага /p , поэтому строки с заменой выводятся по одному разу.
$sed -n 's/unix/linux/p' geekfile.txt
linux is great os. unix is opensource. unix is free os. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Если использовать только -n , исключив /p , вывод команда не произведёт.
9. Замена шаблона в указанном диапазоне строк
sed позволяет указывать диапазон строк, в которых требуется заменить определённый шаблон:
$sed '1,3 s/unix/linux/' geekfile.txt
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Здесь sed производит замену в строках с 1 по 3. А вот ещё один пример:
$sed '2,$ s/unix/linux/' geekfile.txt
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful
Здесь $ указывает на последнюю строку файла, в связи с чем sed заменяет первые вхождения шаблона, начиная со второй и заканчивая ей.
10. Удаление строк из файла
С помощью sed также можно удалять строки из заданного файла:
10.1 Удаление n-ой строки:
Синтаксис: $ sed ‘nd’ filename.txt
Пример: $ sed ‘5d’ filename.txt
10.2 Удаление последней строки:
Синтаксис: $ sed ‘$d’ filename.txt
10.3 Удаление строк с x> по y:
Синтаксис: $ sed ‘x,yd’ filename.txt
Пример: $ sed ‘3,6d’ filename.txt
10.4 Удаление строк с n-ой до последней:
Синтаксис: $ sed ‘n,$d’ filename.txt
Пример: $ sed ’12,$d’ filename.txt
10.5 Удаление текста, соответствующего шаблону:
Синтаксис: $ sed ‘/pattern/d’ filename.txt
Пример: $ sed ‘/abc/d’ filename.txt
Примеры команд (продолжение)
Во второй части мы разберём ещё одну серию операций с командой sed на примере уже другого файла, a.txt. Чтобы излишне не растягивать статью, вывод команд далее приводится не будет, так что для лучшего понимания можете самостоятельно попрактиковаться, создав такой же файл с аналогичным содержимым.
[root@rhel7 ~]# cat a.txt
life isn't meant to be easy, life is meant to be lived. Try to learn & understand something new everyday in life. Respect everyone & most important love everyone. Don’t hesitate to ask for love & don’t hesitate to show love too. Life is too short to be shy. In life, experience will help you differentiating right from wrong.
Добавление/удаление пустых строк в файле
1. Вставить после каждой текстовой строки одну пустую:
[root@rhel7 ~]# sed G a.txt

2. Вставить две пустые строки:
[root@rhel7 ~]# sed 'G;G' a.txt
3. Удалить все пустые строки и вставить по одной после каждой текстовой:
[root@rhel7 ~]# sed '/^$/d;G' a.txt
4. Вставить пустую строку над каждой, содержащей love :
[root@rhel7 ~]# sed '/love/' a.txt
5. Вставить пустую строку после каждой, содержащей love :
[root@rhel7 ~]# sed '/love/G' a.txt
6. Вставить 5 пробелов слева от каждой строки:
[root@rhel7 ~]# sed 's/^/ /' a.txt
Нумерация строк
1. Пронумеровать каждую строку файла (с левым выравниванием).
В этой команде символ = используется для нумерации строки, а флаг \t для табулирования между номером и предложением:
Пример: [root@rhel7 ~]# sed = a.txt | sed ‘N;s/\n/\t/’
2. Пронумеровать каждую строку файла (число слева, выравнивание по правому краю).
Эта команда похожа на `cat -n filename` :
Пример: [root@rhel7 ~]# sed = a.txt | sed ‘N; s/^/ /; s/ *\(.\\)\n/\1 /’
3. Пронумеровать каждую непустую строку файла:
Пример: [root@rhel7 ~]# sed ‘/./=’ a.txt | sed ‘/./N; s/\n/ /’
Удаление строк
1. Удалить конкретную строку:
Синтаксис: sed ‘nd’ filename
Пример: [root@rhel7 ~]# sed ‘5d’ a.txt
2. Удалить последнюю строку:
Синтаксис: sed ‘$d’ filename
3. Удалить строки с x по y :
Синтаксис: sed ‘x,yd’ filename
Пример: [root@rhel7 ~]# sed ‘3,5d’ a.txt
4. Удалить строки с n-ой до последней:
Синтаксис: sed ‘n,$d’ filename
Пример: [root@rhel7 ~]# sed ‘2,$d’ a.txt
5. Удалить строку, содержащую шаблон:
Синтаксис: sed ‘/pattern/d’ filename
Пример: [root@rhel7 ~]# sed ‘/life/d’ a.txt
6. Удалить каждую вторую строку начиная с n-ой:
Синтаксис: sed ‘n~2d’ filename
Пример: [root@rhel7 ~]# sed ‘3~2d’ a.txt
7. Удалить строки, содержащие шаблон, и по две строки после них:
Синтаксис: sed ‘/pattern/,+2d’ filename
Пример: [root@rhel7 ~]# sed ‘/easy/,+2d’ a.txt
8. Удалить пустые строки:
Пример: [root@rhel7 ~]# sed ‘/^$/d’ a.txt
9. Удалить пустые строки или начинающиеся с # :
Пример: [root@rhel7 ~]# sed -i ‘/^#/d;/^$/d’ a.txt
Просмотр/вывод строк
Для просмотра содержимого файла мы используем команду cat , а его начало и конец просматриваем с помощью утилит head и tail . Но что, если нас интересует некий участок в середине файла? В таком случае можно снова задействовать sed .
1. Просмотреть файл со строки x по y:
Синтаксис: sed -n ‘x,yp’ filename
Пример: [root@rhel7 ~]# sed -n ‘2,5p’ a.txt
2. Просмотреть весь файл, за исключением заданного диапазона:
Синтаксис: sed ‘x,yd’ filename
Пример: [root@rhel7 ~]# sed ‘2,4d’ a.txt
3. Вывести n-ую строку файла:
Синтаксис: sed -n ‘address’p filename
Пример: [root@rhel7 ~]# sed -n ‘4’p a.txt
4. Вывести строки с x по y:
Синтаксис: sed -n ‘x,y’p filename
Пример: [root@rhel7 ~]# sed -n ‘4,6’p a.txt
5. Вывести только последнюю строку:
Синтаксис: sed -n ‘$’p filename
6. Вывести с n-ой строки до последней:
Синтаксис: sed -n ‘n,$p’ filename
Пример: [root@rhel7 ~]# sed -n ‘3,$’p a.txt
7. Вывести строки, содержащие указанный шаблон:
Синтаксис: sed -n /pattern/p filename
Пример: [root@rhel7 ~]# sed -n /every/p a.txt
8. Вывести строки начиная с первой, где обнаружен шаблон, и до строки x:
Синтаксис: sed -n ‘/pattern/,xp’ filename
Пример: [root@rhel7 ~]# sed -n ‘/everyone/,5p’ a.txt
В данном случае первое вхождение everyone содержится в строке 3, значит в терминале отобразятся строки с 3 по 5. Если нужно вывести файл до конца, используйте вместо 5 символ $ .
9. Вывести строки с x и до строки, содержащей шаблон. Если шаблон не обнаруживается, выводится файл до конца:
Синтаксис: sed -n ‘x,/pattern/p’ filename
Пример: sed -n ‘1,/everyone/p’ a.txt
10. Вывести все строки, содержащие шаблон, включая следующие за каждой из них x строк:
Синтаксис: sed -n ‘/pattern/,+xp’ filename
Пример: sed -n ‘/learn/,+2p’ a.txt
Замена с помощью команды sed (дополнение)
Ниже приводится небольшой список операций, дополняющий перечисленные ранее.
1. Два способа замены шаблона, игнорируя регистр:
1.1 Использовать флаг /i :
Синтаксис: sed ‘s/old_pattern/new_pattern/i’ filename
Пример: [root@rhel7 ~]# sed ‘s/life/Love/i’ a.txt
1.2 Использовать регулярные выражения:
Пример: [root@rhel7 ~]# sed ‘s/[Ll]ife/Love/g’ a.txt
2. Замена нескольких пробелов одним:
Пример: [root@rhel7 clang]# sed ‘s/ */ /g’ filename
3. Замена шаблона, сопровождающего другой шаблон:
Синтаксис: sed ‘/followed_pattern/ s/old_pattern/new_pattern/’ filename
Пример: [root@rhel7 ~]# sed ‘/is/ s/live/love/’ a.txt
10. Замена шаблона другим шаблоном, за исключением строки n:
Синтаксис: sed ‘n!s/old_pattern/new_pattern/’ filename
Пример: [root@rhel7 ~]# sed -i ‘5!s/life/love/’ a.txt

- Блог компании RUVDS.com
- Настройка Linux
- *nix
- Серверное администрирование