Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Вопрос по sed / 10 сообщений из 10, страница 1 из 1
09.02.2011, 12:28
    #37106377
Nick Chervov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
Всем привет!

есть значение переменной VALUE:
oebs_serv316841662446047.log

Необходимо сделать oebs_serv3168*.log , предполагаю что это делается с помощью sed'а, только не разобрался как задать такое условие.

Нашел функцию замены:
echo ${VALUE} | sed 's/41662446047/*/g'
вывело как надо - oebs_prod3168*.log
но теперь не понимаю как мне указать эти цифры, т.е. как заменить символы с 14 -го по 24 на *

Помогите пожалуйста!
...
Рейтинг: 0 / 0
09.02.2011, 14:49
    #37106886
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
Nick Chervov , заранее извиняюсь за возможные ошибки, попросту нет возможности проверить регэксп. Наверное, что то вроде:

echo ${VALUE} | sed 's/(oebs_serv3168)([0-9]*)(\.log)/\1\*\3/g'
...
Рейтинг: 0 / 0
09.02.2011, 15:24
    #37107027
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
если именно по ТЗ символы цифры с 14 по 24-й - то:

echo ${VALUE} | sed -e 's/\(.\{13\}\)[0-9]\{11\}/\1*/'
...
Рейтинг: 0 / 0
09.02.2011, 15:52
    #37107129
Nick Chervov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
--null--,

Большое спасибо!
...
Рейтинг: 0 / 0
11.02.2011, 13:05
    #37111151
Nick Chervov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
В результате работы возник следующий вопрос:

Как полученное значение oebs_prod3168*.log превратить в oebs_prod3169*.log а потом и в oebs_prod3170*.log ? Возможно ли это сделать с помощью sed'а?
...
Рейтинг: 0 / 0
13.02.2011, 12:22
    #37113688
Вопрос по sed
Nick Chervov,

для произвольного значения 3168? :-)
...
Рейтинг: 0 / 0
14.02.2011, 16:03
    #37115319
Nick Chervov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
К-рниган и Р-тчи,

Почему для произвольного? Для последовательного, .т.е. прибавляя единицу к предыдущему значению.

Как можно это реализовать?
...
Рейтинг: 0 / 0
15.02.2011, 15:57
    #37117507
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
именно sed-ом делать такое-извращение, но с привлечением expr можно


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#!/bin/bash


fname=oebs_prod3168*. log 


 for ((i= 0 ;$i< 10 ;i++))
{
nextname=$( eval   echo  ` echo  $fname | sed -e "s/\([0-9][0-9]*\)/\\\`expr \1 + 1\\\`/"`)
 echo  $nextname
fname=$nextname
}

...
Рейтинг: 0 / 0
15.02.2011, 16:20
    #37117589
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
awk-ом будет веселее

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#!/bin/bash

fname=oebs_prod3168*. log 




 for ((i= 0 ;$i< 10 ;i++))
{
 nextname=` echo  $fname | awk  '{match($0,"[0-9]+");sub("[0-9]+",1+substr($0,RSTART,RLENGTH),$0);print $0}'`
  echo  $nextname
 fname=$nextname
}
...
Рейтинг: 0 / 0
16.02.2011, 09:53
    #37118826
Nick Chervov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по sed
--null--,

Респектище тебе огромное!!!

СПАСИБО!!!
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Вопрос по sed / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]