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

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

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

I like Linux

2

 Консоль:
sed -e 's/\(.*\)\(55555\)\(.*\)/\2/'

3 (06.01.2011 15:54:47 отредактировано astalavista)

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

I like Linux

4

Уточню

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

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

I like Linux

5

astalavista пишет:

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

Нужно оставить только - 55555

astalavista пишет:

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

 Консоль:
$ 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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6

astalavista пишет:

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

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

sed

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

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

I like Linux