- Удалить последнюю строку из файла
- Удаление строк из файла с использованием sed
- Sed: удалить одну или несколько строк из файла
- Синтаксис
- Примеры Sed
- Как удалить первые n строк и последнюю строку файла с помощью команд оболочки?
- глава; глава
- ИЛИ с помощью POSIX sed :
- Удалить последнюю строку из файла в bash
- 11 ответов
- Для Пользователей Mac :
- объяснение :
- Bash-скрипты, часть 7: sed и обработка текстов
- Основы работы с sed
- Выполнение наборов команд при вызове sed
- Чтение команд из файла
- Флаги команды замены
- Символы-разделители
- Выбор фрагментов текста для обработки
- Удаление строк
- Вставка текста в поток
- Замена строк
- Замена символов
- Вывод номеров строк
- Чтение данных для вставки из файла
- Пример
- Итоги
Удалить последнюю строку из файла
Я использую sed для быстрого удаления строк с определенной позицией
Но, если я хочу удалить последнюю строку файла, и я не знаю количество строк (я знаю, что могу получить это с помощью wc и нескольких других трюков).
В настоящее время, используя обходной путь с head и tail сочетании с wc чтобы сделать это. Какие-нибудь быстрые повороты здесь?
в sed $ – последняя строка, поэтому для удаления последней строки:
$ для последней строки:
cat file.txt | head -n -1 > new_file.txt
Опасайтесь, кажется, в зависимости от последней строки file.txt (если он заканчивается EOF или \n а затем EOF ), количество строк в new_file.txt может быть таким же (как file.txt ) после этой команды (это происходит, когда нет \n ) – в любом случае содержимое последней строки удаляется.
Также обратите внимание, что вы должны использовать второй (промежуточный) файл. Если вы кота и перенаправляетесь к тому же файлу, вы его удалите.
head —lines=-1 . Я впервые наткнулся на эту возможность на man-странице для главы на SLES11SP2-системе (coreutils-8.12-6.23.1)
tail и head являются частью coreutils -rpm (по крайней мере для систем на основе об / мин).
Согласно списку изменений ядра, этот синтаксис поддерживается, так как coreutils-версия 5.0.1
Плохая новость: согласно странице RH5-man эта опция не описывается
Хорошие новости: он работает с RH5 (так что в вашем случае: он работает – по крайней мере, с текущей версией RH5).
rpm -q coreutils показывает мне (на CentOS 5.8): coreutils-5.97-34.el5_8.1
Я не уверен, что RH5.5. уже имеет версию coreutils, которая ее поддерживает. Но 5.5 имеет EoLed.
Источник
Удаление строк из файла с использованием sed
В Unix команда SED удаляет одну или несколько строк из указанного файла по желанию пользователя. Эта утилита используется для работы с командной строкой Unix, для удаления из файла выражений, которые могут быть идентифицированы с помощью определяющего разделителя (например, запятая, табуляция или пробел), по номеру строки или путем поиска строки, выражения или адреса строки в синтаксисе sed.
Sed: удалить одну или несколько строк из файла
Вот как можно удалить одну или несколько строк из файла.
Синтаксис
n = номер строки
string = ряд символов, найденный в строке
regex = регулярное выражение, соответствующее искомому шаблону
addr = адрес строки (номер или шаблон)
d = удалить (delete)
Примеры Sed
Вот несколько примеров использования приведенного выше синтаксиса.
Используйте следующий код, чтобы удалить третью строку:
Удалите строку, содержащую ряд букв «awk», используя:
Вы можете удалить последнюю строку, введя:
Или удалить все пустые строки:
Удалить строку, соответствующую регулярным выражениям (путем исключения одного из них, содержащего цифровые символы, как минимум 1 цифру, расположенные в конце строки):
Удалить интервал между строками 7 и 9:
Та же операция, что и приведенная выше, но с заменой адреса параметрами:
Вышеприведенные примеры отображают изменения только при открытии файла (stdout1 = screen).
Для постоянных изменений в старых версиях (ниже 4) используйте временный файл для GNU sed с использованием команды -i [suffix]:
Источник
Как удалить первые n строк и последнюю строку файла с помощью команд оболочки?
У меня есть файл с именем Element_query содержащий результат запроса:
Я хочу удалить 1-ю строку и последнюю строку с помощью команды оболочки.
Использование GNU sed :
Как это работает :
- -i отредактируйте сам файл. Вы также можете удалить эту опцию и перенаправить вывод на новый файл или другую команду, если хотите.
- 1d удаляет первую строку ( 1 только для первой строки, d для ее удаления)
- $d удаляет последнюю строку ( $ только для последней строки, d для ее удаления)
Идти дальше :
- Вы также можете удалить диапазон. Например, 1,5d первые 5 строк.
- Вы также можете удалить каждую строку, начинающуюся с SQL> с помощью оператора /^SQL> /d
- Вы можете удалить каждую пустую строку с помощью /^$/d
- Наконец, вы можете объединить любой из операторов, разделив их на statement1;statement2;satement3;. ( statement1;statement2;satement3;. ) или указав их отдельно в командной строке ( -e ‘statement1’ -e ‘statement 2’ . )
глава; глава
С помощью вышеизложенного вы можете указать первое число строк, которые должны отделяться от головки вывода с первой head командой, и количество строк для записи в outfile со вторым. Он также будет делать это быстрее, чем sed – особенно когда вход большой – несмотря на то, что требуется два вызова. Если sed определенно должен быть предпочтительным, в том случае, если не является обычным, lseekable файлом, потому что это обычно не работает так, как предполагалось в этом случае, но sed может обрабатывать все выходные модификации в одном сценарии.
С head GNU вы можете использовать отрицательную форму для [num] во второй команде. В этом случае следующая команда будет отделять первую и последнюю строки от ввода:
ИЛИ с помощью POSIX sed :
Скажем, например, я читал ввод из 20 строк, и я хотел снять первые 3 и последние 7. Если бы я решил сделать это w / sed , я бы сделал это с хвостовым буфером. Сначала я добавлю три и семь для общего количества строк в десять, а затем выполните:
Это пример, который выводит первые 3 и последние 7 строк из ввода. Идея состоит в том, что вы можете буферизировать столько строк, сколько хотите, чтобы вырезать из хвоста ввода в пространстве шаблонов в стеке, но только P rint – первое из них для каждой строки, втянутой в.
- В строках 1,10 sed P ничего не происходит, потому что для каждого из них он стекает в пространстве шаблонов по строкам в цикле ранжирования b .
- На 3-й строке все стеки sed находятся в элементе – и поэтому первые 3 строки удаляются с выхода одним махом.
- Когда sed достигает последней строки ввода и пытается вытащить N ext, он попадает в EOF и полностью прекращает обработку. Но в то время пространство шаблонов содержит все строки 14,20 – ни один из которых до сих пор не был проиндексирован и никогда не был.
- На каждой другой строке sed P rints только до первого встречающегося \n ewline в пространстве шаблонов, а D eletes – до начала нового цикла с остатком – или следующих 6 строк ввода. 7-я строка добавляется снова в стек с командой N ext в новом цикле.
Итак, выход seq (который имеет 20 последовательно пронумерованных строк) , sed печатает только:
Это становится проблематичным, когда количество строк, которые вы хотите вырезать из хвоста ввода, велико – потому что производительность sed прямо пропорциональна размеру его пространства шаблонов. Тем не менее, во многих случаях это жизнеспособное решение – и POSIX специфицирует пространство шаблонов sed чтобы обрабатывать как минимум 4kb до перебора.
Я не буду отвечать, как удалить несколько строк. Я собираюсь атаковать проблему следующим образом:
grep -v ‘#SQL>’ Element_query >outfile
Вместо подсчета строк он исключает команды SQL, распознавая подсказки. Это решение затем может быть обобщено для других выходных файлов SQL-сессий с большим количеством команд, чем два.
ed является «стандартным текстовым редактором» и должен быть доступен в системах, не имеющих GNU sed . Он был первоначально разработан как текстовый редактор, но он хорошо подходит для сценариев.
1d удаляет первую строку файла, $d (цитируется так, что оболочка не считает, что это переменная) удаляет последнюю строку, w записывает файл и q завершает работу. printf здесь используется для форматирования команд для ed – для каждого должна следовать новая строка; есть, конечно, другие способы этого.
Существует несколько способов удалить ведущие и завершающие строки из файла.
Вы можете использовать awk поскольку он обрабатывает как соответствие шаблонов, так и подсчет строк,
Вы можете использовать grep -v для исключения строк, которые вам не нужны по шаблону, и вы можете сопоставлять несколько шаблонов с использованием опции -E ,
Вы можете использовать head и tail чтобы обрезать определенные количества линий,
Вы можете использовать vi/vim и удалить первую и последнюю строки,
вы можете использовать скрипт perl, пропустить первую строку, сохранить каждую строку, распечатать, когда вы получите следующую строку,
Вам будет намного лучше обслуживать, отсекая SQL-команды. Вы можете сделать это двумя способами:
Если вы абсолютно уверены, что последовательность « SQL> » не встречается нигде в выходе,
Если вы не уверены,
Вторая версия медленнее, но точнее: она будет игнорировать строки, начинающиеся с «SQL>» и заканчивающиеся точкой с запятой, которые, похоже, описывают строки, которые вы хотите устранить.
Однако было бы лучше не добавлять этот дополнительный вывод в файл. В большинстве систем SQL есть способ сделать это. Я не слишком разбираюсь в Oracle, но, возможно, этот ответ может оказаться полезным.
Вы можете выбрать линии между диапазоном в awk (это предполагает, что вы знаете, сколько строк есть):
Если вы не знаете, сколько строк есть, вы можете рассчитать его на лету, используя grep (обратите внимание, что это не будет считать пустые строки, используйте grep -c » file чтобы подсчитать их):
Попробуйте это решение:
настройка
Вы можете легко адаптировать его для удаления n первых строк, изменяющих +2 tail ;
или удалить последние n строк, изменяющих -1 head .
- : перенаправляет содержимое inputfile на stdin awk
- > outputfile : перенаправляет содержимое stdout awk в outputfile
- NR>1 : выполняет следующие действия только в том случае, если номер обрабатываемой записи больше 1
: печатает содержимое переменной r : присваивает содержимое обрабатываемой записи переменной r
Поэтому при первом выполнении awk скрипта первый блок действий не выполняется, тогда как выполняется второй блок действий, а содержимое записи назначается переменной r ; при втором выполнении выполняется первый блок действий, и печатается содержимое переменной r (поэтому печатается предыдущая запись); это приводит к печати каждой обрабатываемой линии, но первой и последней.
Источник
Удалить последнюю строку из файла в bash
у меня есть файл, foo.txt , содержащий следующие строки:
Я хочу простую команду, которая приводит к содержимому foo.txt время:
11 ответов
на не существует GNU sed версии 3.95, так что вы должны использовать его в качестве фильтра с временным файл:
конечно, в этом случае вы также можете использовать head -n -1 вместо sed .
Это, безусловно, самое быстрое и простое решение, особенно для больших файлов:
Если вы хотите удалить верхнюю строку, используйте это:
что означает выходные линии, начинающиеся с линии 2.
не используйте sed для удаления строк из верхней или нижней части файла-это очень медленно, если файл большой.
у меня были проблемы со всеми ответами здесь, потому что я работал с огромным файлом (
300Gb), и ни одно из решений не масштабировалось. Вот мое решение:
in words: узнайте длину файла, который вы хотите получить (длина файла минус длина его последней строки, используя bc ) и установите эту позицию в конец файла (по dd ing один байт /dev/null на него).
это быстро, потому что tail начинает читать с конца, и dd перезапишется файлом на месте вместо того, чтобы копировать (и анализировать) каждую строку файла, что делают другие решения.
Примечание: это удаляет строку из файла на месте! Сделайте резервную копию или тест на фиктивный файл, прежде чем попробовать его на свой собственный файл!
удалить последнюю строку из файла без чтения всего файла или переписывания чего-либо, вы можете использовать
чтобы удалить последнюю строку, а также распечатать ее на stdout («pop»), вы можете объединить эту команду с tee :
эти команды могут эффективно обрабатывать очень большие файлы. Это похоже на ответ Йоси и вдохновлено им, но позволяет избежать использования нескольких дополнительных функций.
если вы собираетесь использовать эти повторно и хотите обработку ошибок и некоторые другие функции, вы можете использовать
Если вы хотите удалить только последнюю строку без изменения самого файла, сделайте
sed -e ‘$ d’ foo.txt
Если вы хотите удалить последнюю строку сам входной файл делаем
sed -i » -e ‘$ d’ foo.txt
Для Пользователей Mac :
на Mac, head-n -1 не будет работать. И я пытался найти простое решение [ не беспокоясь о времени обработки], чтобы решить эту проблему только с помощью команд» голова «и/или» хвост».
я попробовал следующую последовательность команд и был рад, что могу решить ее, просто используя команду «хвост» [с параметрами, доступными на Mac ]. Итак, если вы находитесь на Mac и хотите использовать только «хвост» для решения этой проблемы, вы можете использовать эту команду :
файл cat.txt / tail-r / tail-n +2 / tail-r
объяснение :
1 > tail-r: просто меняет порядок строк на своем входе
2 > tail-n +2: это печатает все строки, начиная со второй строки на входе
Источник
Bash-скрипты, часть 7: sed и обработка текстов
В прошлый раз мы говорили о функциях в bash-скриптах, в частности, о том, как вызывать их из командной строки. Наша сегодняшняя тема — весьма полезный инструмент для обработки строковых данных — утилита Linux, которая называется sed. Её часто используют для работы с текстами, имеющими вид лог-файлов, конфигурационных и других файлов.
Если вы, в bash-скриптах, каким-то образом обрабатываете данные, вам не помешает знакомство с инструментами sed и gawk. Тут мы сосредоточимся на sed и на работе с текстами, так как это — очень важный шаг в нашем путешествии по бескрайним просторам разработки bash-скриптов.
Сейчас мы разберём основы работы с sed, а так же рассмотрим более трёх десятков примеров использования этого инструмента.
Основы работы с sed
Утилиту sed называют потоковым текстовым редактором. В интерактивных текстовых редакторах, наподобие nano, с текстами работают, используя клавиатуру, редактируя файлы, добавляя, удаляя или изменяя тексты. Sed позволяет редактировать потоки данных, основываясь на заданных разработчиком наборах правил. Вот как выглядит схема вызова этой команды:
По умолчанию sed применяет указанные при вызове правила, выраженные в виде набора команд, к STDIN . Это позволяет передавать данные непосредственно sed.
Вот что получится при выполнении этой команды.
Простой пример вызова sed
В данном случае sed заменяет слово «test» в строке, переданной для обработки, словами «another test». Для оформления правила обработки текста, заключённого в кавычки, используются прямые слэши. В нашем случае применена команда вида s/pattern1/pattern2/ . Буква «s» — это сокращение слова «substitute», то есть — перед нами команда замены. Sed, выполняя эту команду, просмотрит переданный текст и заменит найденные в нём фрагменты (о том — какие именно, поговорим ниже), соответствующие pattern1 , на pattern2 .
Выше приведён примитивный пример использования sed, нужный для того, чтобы ввести вас в курс дела. На самом деле, sed можно применять в гораздо более сложных сценариях обработки текстов, например — для работы с файлами.
Ниже показан файл, в котором содержится фрагмент текста, и результаты его обработки такой командой:
Текстовый файл и результаты его обработки
Здесь применён тот же подход, который мы использовали выше, но теперь sed обрабатывает текст, хранящийся в файле. При этом, если файл достаточно велик, можно заметить, что sed обрабатывает данные порциями и выводит то, что обработано, на экран, не дожидаясь обработки всего файла.
Sed не меняет данные в обрабатываемом файле. Редактор читает файл, обрабатывает прочитанное, и отправляет то, что получилось, в STDOUT . Для того, чтобы убедиться в том, что исходный файл не изменился, достаточно, после того, как он был передан sed, открыть его. При необходимости вывод sed можно перенаправить в файл, возможно — перезаписать старый файл. Если вы знакомы с одним из предыдущих материалов этой серии, где речь идёт о перенаправлении потоков ввода и вывода, вы вполне сможете это сделать.
Выполнение наборов команд при вызове sed
Для выполнения нескольких действий с данными, используйте ключ -e при вызове sed. Например, вот как организовать замену двух фрагментов текста:
Использование ключа -e при вызове sed
К каждой строке текста из файла применяются обе команды. Их нужно разделить точкой с запятой, при этом между окончанием команды и точкой с запятой не должно быть пробела.
Для ввода нескольких шаблонов обработки текста при вызове sed, можно, после ввода первой одиночной кавычки, нажать Enter, после чего вводить каждое правило с новой строки, не забыв о закрывающей кавычке:
Вот что получится после того, как команда, представленная в таком виде, будет выполнена.
Другой способ работы с sed
Чтение команд из файла
Если имеется множество команд sed, с помощью которых надо обработать текст, обычно удобнее всего предварительно записать их в файл. Для того, чтобы указать sed файл, содержащий команды, используют ключ -f :
Вот содержимое файла mycommands :
Вызовем sed, передав редактору файл с командами и файл для обработки:
Результат при вызове такой команды аналогичен тому, который получался в предыдущих примерах.
Использование файла с командами при вызове sed
Флаги команды замены
Внимательно посмотрите на следующий пример.
Вот что содержится в файле, и что будет получено после его обработки sed.
Исходный файл и результаты его обработки
Команда замены нормально обрабатывает файл, состоящий из нескольких строк, но заменяются только первые вхождения искомого фрагмента текста в каждой строке. Для того, чтобы заменить все вхождения шаблона, нужно использовать соответствующий флаг.
Схема записи команды замены при использовании флагов выглядит так:
Выполнение этой команды можно модифицировать несколькими способами.
- При передаче номера учитывается порядковый номер вхождения шаблона в строку, заменено будет именно это вхождение.
- Флаг g указывает на то, что нужно обработать все вхождения шаблона, имеющиеся в строке.
- Флаг p указывает на то, что нужно вывести содержимое исходной строки.
- Флаг вида w file указывает команде на то, что нужно записать результаты обработки текста в файл.
Рассмотрим использование первого варианта команды замены, с указанием позиции заменяемого вхождения искомого фрагмента:
Вызов команды замены с указанием позиции заменяемого фрагмента
Тут мы указали, в качестве флага замены, число 2. Это привело к тому, что было заменено лишь второе вхождение искомого шаблона в каждой строке. Теперь опробуем флаг глобальной замены — g :
Как видно из результатов вывода, такая команда заменила все вхождения шаблона в тексте.
Флаг команды замены p позволяет выводить строки, в которых найдены совпадения, при этом ключ -n , указанный при вызове sed, подавляет обычный вывод:
Как результат, при запуске sed в такой конфигурации на экран выводятся лишь строки (в нашем случае — одна строка), в которых найден заданный фрагмент текста.
Использование флага команды замены p
Воспользуемся флагом w , который позволяет сохранить результаты обработки текста в файл:
Сохранение результатов обработки текста в файл
Хорошо видно, что в ходе работы команды данные выводятся в STDOUT, при этом обработанные строки записываются в файл, имя которого указано после w .
Символы-разделители
Представьте, что нужно заменить /bin/bash на /bin/csh в файле /etc/passwd . Задача не такая уж и сложная:
Однако, выглядит всё это не очень-то хорошо. Всё дело в том, что так как прямые слэши используются в роли символов-разделителей, такие же символы в передаваемых sed строках приходится экранировать. В результате страдает читаемость команды.
К счастью, sed позволяет нам самостоятельно задавать символы-разделители для использования их в команде замены. Разделителем считается первый символ, который будет встречен после s :
В данном случае в качестве разделителя использован восклицательный знак, в результате код легче читать и он выглядит куда опрятнее, чем прежде.
Выбор фрагментов текста для обработки
До сих пор мы вызывали sed для обработки всего переданного редактору потока данных. В некоторых случаях с помощью sed надо обработать лишь какую-то часть текста — некую конкретную строку или группу строк. Для достижения такой цели можно воспользоваться двумя подходами:
- Задать ограничение на номера обрабатываемых строк.
- Указать фильтр, соответствующие которому строки нужно обработать.
Рассмотрим первый подход. Тут допустимо два варианта. Первый, рассмотренный ниже, предусматривает указание номера одной строки, которую нужно обработать:
Обработка только одной строки, номер который задан при вызове sed
Второй вариант — диапазон строк:
Обработка диапазона строк
Кроме того, можно вызвать команду замены так, чтобы файл был обработан начиная с некоей строки и до конца:
Обработка файла начиная со второй строки и до конца
Для того, чтобы обрабатывать с помощью команды замены только строки, соответствующие заданному фильтру, команду надо вызвать так:
По аналогии с тем, что было рассмотрено выше, шаблон передаётся перед именем команды s .
Обработка строк, соответствующих фильтру
Тут мы использовали очень простой фильтр. Для того, чтобы в полной мере раскрыть возможности данного подхода, можно воспользоваться регулярными выражениями. О них мы поговорим в одном из следующих материалов этой серии.
Удаление строк
Утилита sed годится не только для замены одних последовательностей символов в строках на другие. С её помощью, а именно, используя команду d , можно удалять строки из текстового потока.
Вызов команды выглядит так:
Мы хотим, чтобы из текста была удалена третья строка. Обратите внимание на то, что речь не идёт о файле. Файл останется неизменным, удаление отразится лишь на выводе, который сформирует sed.
Удаление третьей строки
Если при вызове команды d не указать номер удаляемой строки, удалены будут все строки потока.
Вот как применить команду d к диапазону строк:
Удаление диапазона строк
А вот как удалить строки, начиная с заданной — и до конца файла:
Удаление строк до конца файла
Строки можно удалять и по шаблону:
Удаление строк по шаблону
При вызове d можно указывать пару шаблонов — будут удалены строки, в которых встретится шаблон, и те строки, которые находятся между ними:
Удаление диапазона строк с использованием шаблонов
Вставка текста в поток
С помощью sed можно вставлять данные в текстовый поток, используя команды i и a :
- Команда i добавляет новую строку перед заданной.
- Команда a добавляет новую строку после заданной.
Рассмотрим пример использования команды i :
Теперь взглянем на команду a :
Как видно, эти команды добавляют текст до или после данных из потока. Что если надо добавить строку где-нибудь посередине?
Тут нам поможет указание номера опорной строки в потоке, или шаблона. Учтите, что адресация строк в виде диапазона тут не подойдёт. Вызовем команду i , указав номер строки, перед которой надо вставить новую строку:
Команда i с указанием номера опорной строки
Проделаем то же самое с командой a :
Команда a с указанием номера опорной строки
Обратите внимание на разницу в работе команд i и a . Первая вставляет новую строку до указанной, вторая — после.
Замена строк
Команда c позволяет изменить содержимое целой строки текста в потоке данных. При её вызове нужно указать номер строки, вместо которой в поток надо добавить новые данные:
Замена строки целиком
Если воспользоваться при вызове команды шаблоном в виде обычного текста или регулярного выражения, заменены будут все соответствующие шаблону строки:
Замена строк по шаблону
Замена символов
Команда y работает с отдельными символами, заменяя их в соответствии с переданными ей при вызове данными:
Используя эту команду, нужно учесть, что она применяется ко всему текстовому потоку, ограничить её конкретными вхождениями символов нельзя.
Вывод номеров строк
Если вызвать sed, использовав команду = , утилита выведет номера строк в потоке данных:
Вывод номеров строк
Потоковый редактор вывел номера строк перед их содержимым.
Если передать этой команде шаблон и воспользоваться ключом sed -n , выведены будут только номера строк, соответствующих шаблону:
Вывод номеров строк, соответствующих шаблону
Чтение данных для вставки из файла
Выше мы рассматривали приёмы вставки данных в поток, указывая то, что надо вставить, прямо при вызове sed. В качестве источника данных можно воспользоваться и файлом. Для этого служит команда r , которая позволяет вставлять в поток данные из указанного файла. При её вызове можно указать номер строки, после которой надо вставить содержимое файла, или шаблон.
Вставка в поток содержимого файла
Тут содержимое файла newfile было вставлено после третьей строки файла myfile .
Вот что произойдёт, если применить при вызове команды r шаблон:
Использование шаблона при вызове команды r
Содержимое файла будет вставлено после каждой строки, соответствующей шаблону.
Пример
Представим себе такую задачу. Есть файл, в котором имеется некая последовательность символов, сама по себе бессмысленная, которую надо заменить на данные, взятые из другого файла. А именно, пусть это будет файл newfile , в котором роль указателя места заполнения играет последовательность символов DATA . Данные, которые нужно подставить вместо DATA , хранятся в файле data .
Решить эту задачу можно, воспользовавшись командами r и d потокового редактора sed:
Замена указателя места заполнения на реальные данные
Как видите, вместо заполнителя DATA sed добавил в выходной поток две строки из файла data .
Итоги
Сегодня мы рассмотрели основы работы с потоковым редактором sed. На самом деле, sed — это огромнейшая тема. Его изучение вполне можно сравнить с изучением нового языка программирования, однако, поняв основы, вы сможете освоить sed на любом необходимом вам уровне. В результате ваши возможности по обработке с его помощью текстов будет ограничивать лишь воображение.
На сегодня это всё. В следующий раз поговорим о языке обработки данных awk.
Уважаемые читатели! А вы пользуетесь sed в повседневной работе? Если да — поделитесь пожалуйста опытом.
Источник