LINUX.ORG.RU
решено ФорумAdmin

Как найти подстроку в строке по шаблону?

 ,


0

1

Например дано

bis_kamin55_psql_Rt6Hjdghe8i_daily_2_08.dump.gz

Я знаю что искомая подстрока находится между bis_kamin55_psql_ и _daily. Задачу хочу выполнить на bash

Гугл не понимает что я хочу…



Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от Shulman

Обратить задачу

echo "bis_kamin55_psql_Rt6Hjdghe8i_daily_2_08.dump.gz" | sed 's/^.*bis_kamin55_psql_//;s/_daily.*//'
или как правильно советуют ниже сделать захват
AKonia ★★★
()
Последнее исправление: AKonia (всего исправлений: 2)
Ответ на: комментарий от Shulman
echo "bis_kamin55_psql_Rt6Hjdghe8i_daily_2_08.dump.gz" | sed -nr "s/.+psql_(.+)_daily.+/\1/p"
anonymous
()

Всем спасибо!

Shulman
() автор топика
Ответ на: комментарий от xgatron

Ваш способ возможно даже быстрее моего regex, если только точно имеются эти подстроки.

vodz ★★★★★
()
Ответ на: комментарий от vodz

Ой, бедолага. Опять оподливился и тебя проигнорировали )0)0

anonymous
()
echo -n 'bis_kamin55_psql_Rt6Hjdghe8i_daily_2_08.dump.gz' | awk -F'_' '{print $4}'
denisE
()
Последнее исправление: denisE (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.