Подскажите пожалуйста по sed, мне нужно вырезать из строки всё кроме одного слова, к примеру :
123 ввыфыв фвывф 55555 ццццц
Нужно оставить только - 55555
Такое ведь возможно?
LinuxForum.Fans
Вопрос по sed
Автор: astalavista
8 сообщений
2938 просмотров
[console]sed -e 's/\(.*\)\(55555\)\(.*\)/\2/'[/console]
Спасибо!
А если значение 55555 иногда может быть другим, но оно идет, к примеру после ZZZ: и количество символов может отличаться...
Уточню
Строка 2221 вв фывф ывфывф zz 333321 rrrrr 12312313
Нужно вывести то, что после zz и до rrrrr
123 ввыфыв фвывф 55555 ццццц
Нужно оставить только - 55555
А если значение 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) затем одна или более пятёрок.
Строка 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]
Спасибо! То что надо!
Войдите или зарегистрируйтесь, чтобы ответить.