$sea = xyz-ajay-no-siddhart-ubidone-fdh-DMJK.UK.1.0-32133-Z-1.tgz
и я хочу извлечь только DMJK.UK.1.0-32133-Z-1, который является первым вхождения, и строка поиска начнется как DMJK.Извлечь подстроку из строки в сценарии оболочки
$sea = anything-anything.xyz-ajay-no-siddhart-ubidone-fdh-DMJK.UK.1.0-32133-Z-1.tgz matchessadds.dsdsds.21212.anything-anything
или $ море = ничего-anything.xyz-Аджай-нет-siddhart-ubidone-ФДГ-DMJK.UK.1.0-32133-Z-1.tar.bz2 matchessadds.dsdsds.21212.anything -anything
необходимости извлекать начало от DMJK и перед любым ".tgz" или ".tar" или "tar.bz2",
о/р должен быть DMJK.UK.1.0-32133-Z- 1 в приведенном выше случае.
главная строка может быть все, что включают в себя формат
«anything.anything-DMJK.XXX. [] 0-9]. [0-9]. [0-9] -3213309- [AZ] - [0-9] .tar.tgz ничего-ничего "
изменения на лету, о/р может быть DMJK.XXX.1.3.0-3213309-Z-13
Я пытался, но его не работает :
echo $sea | sed 's#.*(DMJK.*).t*#\1#g'
Почему o/p идет по ссылке DMJK.UK.1.0-32133-Z-1 соответствует –
o/p - это ссылка, которая, поскольку соответствует re как предусмотрено. (?) Использование -E говорит sed использовать расширенные регулярные выражения, поэтому шаблон соответствует DMJK, за которым следует антия (это первая группа), за которой следуют любые «tgz», «tar.bz2» или «tar». (обратите внимание, что «tarxbz2» также соответствует, так как «.» является метасимволом, но все это поле избыточно, так как оно соответствует «tar») –