ДОброе утро.
как sed`ом удалить всё что существует до первого регэкспа, а ещё лучше
всё то, что существует начиная с одного и заканчитвая другим регэкспом,
сейчас пытаюсь удалить всё что находиться до регэкспа с помощью:
cat file1.tmp | sed -e "s/.*\(static\)/\1/g"
но он оне работает. подскажите в чём трабла...
sed и удаления до регекспа
Модератор: Модераторы разделов
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: sed и удаления до регекспа
покажи файл.
-
glist1
- Сообщения: 2
- ОС: Linux
Re: sed и удаления до регекспа
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 и удаления до регекспа
тупой вариант в голову приходит, сначала снести все от начала файла до данной строки, а потом удалить то что стоит перед static:
sed -e '/static/p;0,/static/d' 1.test |sed -e 's!.*\(static\)!\1!'
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