LinuxForum.Fans
Тема

Вопрос по sed

Автор: astalavista 8 сообщений 2938 просмотров
#114164

Подскажите пожалуйста по sed, мне нужно вырезать из строки всё кроме одного слова, к примеру :

123 ввыфыв фвывф 55555 ццццц

Нужно оставить только - 55555
Такое ведь возможно?

#114171

[console]sed -e 's/\(.*\)\(55555\)\(.*\)/\2/'[/console]

#114198

Спасибо!
А если значение 55555 иногда может быть другим, но оно идет, к примеру после ZZZ: и количество символов может отличаться...

#114200

Уточню

Строка 2221 вв фывф ывфывф zz 333321 rrrrr 12312313

Нужно вывести то, что после zz и до rrrrr

#114201
astalavista написал:
123 ввыфыв фвывф 55555 ццццц

Нужно оставить только - 55555
astalavista написал:
А если значение 55555 иногда может быть другим, но оно идет, к примеру после ZZZ: и количество символов может отличаться...

[console]$ echo "123 ввыфыв 555 kdkdZ:5555555фвыZ555вфZZZZ:55555 ццццц" | sed -r 's/Z+:5+/\n&\n/g;s/[^\n]*\n([^\n]+)\n[^\n]*/!\1/g'
!Z:5555555!ZZZZ:55555
[/console]

выдирает по правилам:
1) одна или больше Z.
2) затем двоеточие.
3) затем одна или более пятёрок.

#114202
astalavista написал:
Строка 2221 вв фывф ывфывф zz 333321 rrrrr 12312313

Нужно вывести то, что после zz и до rrrrr
I like Linux

[console]$ echo "Строка 2221 вв фывф ывфывф zz 333321 rrrrr 12312313" | sed -r 's/r+/\n&/;s/.*z+([^\n]*)\n.*/"\1"/'
" 333321 "
[/console]

#114204

Спасибо! То что надо!

Войдите или зарегистрируйтесь, чтобы ответить.