sed и удаления до регекспа

Модератор: Модераторы разделов

glist1
Сообщения: 2
ОС: Linux

sed и удаления до регекспа

Сообщение glist1 »

ДОброе утро.

как sed`ом удалить всё что существует до первого регэкспа, а ещё лучше
всё то, что существует начиная с одного и заканчитвая другим регэкспом,
сейчас пытаюсь удалить всё что находиться до регэкспа с помощью:

cat file1.tmp | sed -e "s/.*\(static\)/\1/g"

но он оне работает. подскажите в чём трабла...
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: sed и удаления до регекспа

Сообщение diesel »

покажи файл.
Спасибо сказали:
glist1
Сообщения: 2
ОС: Linux

Re: sed и удаления до регекспа

Сообщение glist1 »

diesel писал(а):
20.02.2008 10:28
покажи файл.

glist@box ~/projects/scripts $ cat 1.test
123412351243423
1234123412342134
213412342134
123static
123412341234
bggggggglist@box ~/projects/scripts $ cat 1.test | sed -e "s/.*\(static\)/\1/g"
123412351243423
1234123412342134
213412342134
static
123412341234
bgggggg

то есть все строки до вхождения static он игнорирует, но в текущей
строку удаляет всё то что находиться до static. Как сделать так что бы
удалялось всё что находиться до первого вхождения static ?
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: sed и удаления до регекспа

Сообщение diesel »

тупой вариант в голову приходит, сначала снести все от начала файла до данной строки, а потом удалить то что стоит перед static:

sed -e '/static/p;0,/static/d' 1.test |sed -e 's!.*\(static\)!\1!'


Код: Выделить всё

diesel@beezir:/tmp$ sed -e '/static/p;0,/static/d' 1.test |sed -e 's!.*\(static\)!\1!'
static
123412341234
Спасибо сказали: