файл :
строка1
строка2
строка3
Как найти "строка2", удалить её и получить следующее содержимое :
строка1
строка3
?
Поиск строки в файле и её удаление.
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 438
- Статус: Подопытный участник
Re: Поиск строки в файле и её удаление.
sed -i '/строка2/d'
¡ Страсть к разрушению есть творческая страсть!
-
- Сообщения: 99
- ОС: gentoo
Re: Поиск строки в файле и её удаление.
cat file | grep -v "строка2" >> file1
Поправил =)
Поправил =)
-
- Модератор
- Сообщения: 4823
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Поиск строки в файле и её удаление.
вы пайп забыли перед grep. да и никогда не понимал в чем магический смысл конструкции cat file | grep something, когда есть grep something file (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 438
- Статус: Подопытный участник
Re: Поиск строки в файле и её удаление.
«Магический смысл», кстати, уже обсуждался на этом форуме.
представим, например, что подряд выполняются несколько команд с одним файлов, но разными шаблонами. В таком случае cat file | grep pattern удобнее.
Или, например, выполняется длинный конвейер. Если он начинается с cat, сразу понятно, что за данные он обрабатывает, не надо парсить строку, отыскивать, где это в опциях grep указан файл.
Суммирую, такая запись позволяет отделить фильтр от данных, которые в этот фильтр передаются.
представим, например, что подряд выполняются несколько команд с одним файлов, но разными шаблонами. В таком случае cat file | grep pattern удобнее.
Или, например, выполняется длинный конвейер. Если он начинается с cat, сразу понятно, что за данные он обрабатывает, не надо парсить строку, отыскивать, где это в опциях grep указан файл.
Суммирую, такая запись позволяет отделить фильтр от данных, которые в этот фильтр передаются.
¡ Страсть к разрушению есть творческая страсть!
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Поиск строки в файле и её удаление.
с этим более-менее ясно, но ИМХО sed -i удобнее (кстати, она ещё и бекап может сделать - sed -i*.bak)
-
- Сообщения: 497
- ОС: Gentoo Linux
Re: Поиск строки в файле и её удаление.
а можно еще по номеру строку удалить
Код: Выделить всё
sed 'NUMBER d'
удалить из файла
Код: Выделить всё
sed -i 'NUMBER d'
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Поиск строки в файле и её удаление.
а ещё можно так:
sed '7~13d'
и так:
sed '0,/xyz/'
только причём тут это? (: