У меня есть следующая строка:
com.advantco.aws.core;version="[1.0,2)",com.advantco.aws.core.adapter;version="[1.0,2)",com.advantco.aws.core.adapter.channelreader.receiver;version="[1.0,2)",com.advantco.aws.core.adapter.channelreader.sender;version="[1.0,2)",com.advantco.aws.core.service;version="[1.0,2)",com.advantco.aws.core.service.s3;version="[1.0,2)"
Необходимо удалить все после ;version
вплоть до ",
В основном нужно получить только все имена пакетов для вывода вбыть как
com.advantco.aws.core
com.advantco.aws.core.adapter
com.advantco.aws.core.adapter.channelreader.receiver
...
Я пытаюсь это
sed -e's/.;*.[",]//g'
, но это только дает мне
com.adntco.aws.core;versio[1,com.adntco.aws.core.adapter;versio[1
Мне нужно сопоставить несколько совпадений в одной строке.Что я здесь не так делаю?
Обновление 1: в некоторых пакетах отсутствует версия импорта, в некоторых пакетах вместо версии указаны другие субатрибуты, например com.advantco.core; optiona = true,так что в основном я хочу, чтобы все было удалено после;и до последней запятой (то есть может быть несколько запятых после точки с запятой или без точки с запятой и только одна запятая.).
пример
com.advantco.aws.core;version="[1.0,2)",com.advantco.aws.core.adapter,com.advantco.aws.core.adapter.channelreader.receiver;version=false,com.advantco.aws.core.adapter.channelreader.sender;optional=true,com.advantco.aws.core.service;version="[1.0,2)",com.advantco.aws.core.service.s3;version="[1.0,2)"
Добавлены другие подробности в отдельные комментарии
Пограничный тестовый пример Это не удалось для некоторых из моих импортов, поэтому краевой тестовый пример для примеров в местах, где у вас есть разрешение = необязательно вместо версии ..
com.advantco.base.hci.af.util;version="[1.0,2)", javax.security.auth.x500;resolution:=optional,com.advantco.base.hci.variablesubstitution,com.advantco.base.logging,com.advantco.base.mime,com.advantco.base.net,com.advantco.base.variablesubstitution,com.advantco.suarcrm.core.adapter;version="1.0,2)",com.advantco.sugarcrm.core.error,javax.naming.directory;resolution:=optional
Ожидаемый результат
com.advantco.base.hci.af.util
javax.security.auth.x500
com.advantco.base.hci.variablesubstitution
com.advantco.base.logging
com.advantco.base.mime
com.advantco.base.net
com.advantco.base.variablesubstitution
com.advantco.suarcrm.core.adapter
com.advantco.sugarcrm.core.error
javax.naming.directory
Тестовый пример EDGE 2 Все еще открыт
Пример файла манифеста выглядит именно так, ответ @anubhavas наиболее близокно он также фиксирует следующие экспортные пакеты, которые не нужно захватывать.Кроме того, последняя строка импорта и вторая строка экспорта объединяются, создавая выдающиеся результаты.
Bnd-LastModified: 1494408636933
Bundle-ManifestVersion: 2
Import-Package: com.advantco.base,com.advantco.base.logging,com.advant
co.base.mime,com.advantco.base.net,com.advantco.base.variablesubstitu
tion,com.advantco.rest,com.advantco.rest.auth,com.advantco.rest.auth.
oauth2,com.advantco.sugarcrm.core,com.advantco.sugarcrm.core.adapter,
com.advantco.sugarcrm.core.error,com.advantco.sugarcrm.core.iface,com
.advantco.sugarcrm.core.object,com.advantco.sugarcrm.core.object.meta
data,com.advantco.sugarcrm.core.rest,com.advantco.sugarcrm.core.rest.
auth,com.advantco.sugarcrm.core.rest.metadata,com.advantco.sugarcrm.c
ore.rest.op,com.advantco.sugarcrm.core.rest.op.v10,com.advantco.sugar
crm.core.rest.parser,com.advantco.sugarcrm.core.rest.parser.object,co
m.advantco.sugarcrm.core.rest.parser.xml,com.advantco.sugarcrm.core.r
est.service,com.advantco.sugarcrm.core.result,com.advantco.sugarcrm.c
ore.result.v10,com.advantco.sugarcrm.core.service,com.advantco.sugarc
rm.core.util,com.advantco.sugarcrm.core.xml,javax.activation,javax.cr
ypto,javax.crypto.spec,javax.mail,javax.xml.bind,javax.xml.parsers,ja
vax.xml.stream,javax.xml.transform,javax.xml.transform.dom,javax.xml.
transform.stream,org.apache.commons.codec.binary,org.apache.commons.c
ollections4.map,org.apache.commons.httpclient,org.apache.commons.http
client.util,org.json
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.6))"
Tool: Bnd-3.3.0.201609221906
Export-Package: com.advantco.sugarcrm.core;uses:="com.advantco.base.lo
gging,com.advantco.sugarcrm.core.object";version="1.0.0",com.advantco
.sugarcrm.core.adapter;uses:="com.advantco.base,com.advantco.base.log
ging,com.advantco.base.net,com.advantco.base.variablesubstitution,com
.advantco.sugarcrm.core,com.advantco.sugarcrm.core.error,com.advantco
.sugarcrm.core.object,com.advantco.sugarcrm.core.object.metadata";ver
sion="1.0.0",com.advantco.sugarcrm.core.error;version="1.0.0",com.adv
antco.sugarcrm.core.iface;uses:="com.advantco.sugarcrm.core.error,com
.advantco.sugarcrm.core.object";version="1.0.0",com.advantco.sugarcrm
.core.object;uses:="com.advantco.base,com.advantco.base.mime,com.adva
ntco.base.net,com.advantco.sugarcrm.core.error,com.advantco.sugarcrm.
core.iface,com.advantco.sugarcrm.core.object.metadata,com.advantco.su
garcrm.core.rest.parser.object,com.advantco.sugarcrm.core.util";versi
on="1.0.0",com.advantco.sugarcrm.core.object.metadata;uses:="com.adva
ntco.sugarcrm.core.object,com.advantco.sugarcrm.core.rest.parser.obje
ct";version="1.0.0",com.advantco.sugarcrm.core.rest;uses:="com.advant
co.base.logging,com.advantco.sugarcrm.core,com.advantco.sugarcrm.core
.object";version="1.0.0",com.advantco.sugarcrm.core.rest.auth;uses:="
com.advantco.base.logging,com.advantco.rest.auth.oauth2,com.advantco.
sugarcrm.core,com.advantco.sugarcrm.core.error,com.advantco.sugarcrm.
core.object";version="1.0.0",com.advantco.sugarcrm.core.rest.metadata
;uses:="com.advantco.base.logging,com.advantco.sugarcrm.core,com.adva
ntco.sugarcrm.core.error,com.advantco.sugarcrm.core.object,com.advant
co.sugarcrm.core.object.metadata,org.json";version="1.0.0",com.advant
co.sugarcrm.core.rest.op;uses:="com.advantco.base,com.advantco.base.l
ogging,com.advantco.base.mime,com.advantco.base.net,com.advantco.rest
,com.advantco.rest.auth.oauth2,com.advantco.sugarcrm.core.error,com.a
dvantco.sugarcrm.core.object,com.advantco.sugarcrm.core.object.metada
ta,com.advantco.sugarcrm.core.rest,com.advantco.sugarcrm.core.rest.pa
rser.object,org.json";version="1.0.0",com.advantco.sugarcrm.core.rest
.op.v10;uses:="com.advantco.base.logging,com.advantco.base.mime,com.a
dvantco.sugarcrm.core.error,com.advantco.sugarcrm.core.object,com.adv
antco.sugarcrm.core.rest.op,org.json";version="1.0.0",com.advantco.su
garcrm.core.rest.parser;uses:="com.advantco.base.logging,com.advantco
.sugarcrm.core.error,com.advantco.sugarcrm.core.object,com.advantco.s
ugarcrm.core.rest";version="1.0.0",com.advantco.sugarcrm.core.rest.pa
rser.chn;uses:="com.advantco.base.logging,com.advantco.sugarcrm.core.
error,com.advantco.sugarcrm.core.object,com.advantco.sugarcrm.core.re
st.parser";version="1.0.0",com.advantco.sugarcrm.core.rest.parser.obj
ect;version="1.0.0",com.advantco.sugarcrm.core.rest.parser.xml;uses:=
"com.advantco.base.logging,com.advantco.sugarcrm.core.error,com.advan
tco.sugarcrm.core.object,com.advantco.sugarcrm.core.object.metadata,c
om.advantco.sugarcrm.core.rest.parser,com.advantco.sugarcrm.core.rest
.parser.object,com.advantco.sugarcrm.core.xml";version="1.0.0",com.ad
vantco.sugarcrm.core.rest.service;uses:="com.advantco.base.logging,co
m.advantco.sugarcrm.core.error,com.advantco.sugarcrm.core.iface,com.a
dvantco.sugarcrm.core.object,com.advantco.sugarcrm.core.rest";version
="1.0.0",com.advantco.sugarcrm.core.result;uses:="com.advantco.base.l
ogging,com.advantco.sugarcrm.core,com.advantco.sugarcrm.core.error,co
m.advantco.sugarcrm.core.object,javax.xml.stream";version="1.0.0",com
.advantco.sugarcrm.core.result.v10;uses:="com.advantco.base.logging,c
om.advantco.sugarcrm.core.error,com.advantco.sugarcrm.core.object,com
.advantco.sugarcrm.core.object.metadata,com.advantco.sugarcrm.core.re
sult,javax.xml.stream";version="1.0.0",com.advantco.sugarcrm.core.ser
vice;uses:="com.advantco.base.logging,com.advantco.sugarcrm.core.ifac
e,com.advantco.sugarcrm.core.object";version="1.0.0",com.advantco.sug
arcrm.core.test;uses:="com.advantco.sugarcrm.core.error,com.advantco.
sugarcrm.core.object";version="1.0.0",com.advantco.sugarcrm.core.util
;uses:="com.advantco.base,com.advantco.base.mime,com.advantco.rest,co
m.advantco.sugarcrm.core,com.advantco.sugarcrm.core.error,com.advantc
o.sugarcrm.core.object,com.advantco.sugarcrm.core.object.metadata,com
.advantco.sugarcrm.core.rest.parser.object,javax.activation,javax.xml
.stream,org.json";version="1.0.0",com.advantco.sugarcrm.core.xml;uses
:="com.advantco.sugarcrm.core.error";version="1.0.0"
Bundle-Name: sugarcrm-core
Bundle-Version: 1.0.0
Build-Jdk: 1.7.0_71
Вывод
com.advantco.base
com.advantco.base.logging
com.advantco.base.mime
com.advantco.base.net
com.advantco.base.variablesubstitution
com.advantco.rest
com.advantco.rest.auth
com.advantco.rest.auth.oauth2
com.advantco.sugarcrm.core
com.advantco.sugarcrm.core.adapter
com.advantco.sugarcrm.core.error
com.advantco.sugarcrm.core.iface
com.advantco.sugarcrm.core.object
com.advantco.sugarcrm.core.object.metadata
com.advantco.sugarcrm.core.rest
com.advantco.sugarcrm.core.rest.auth
com.advantco.sugarcrm.core.rest.metadata
com.advantco.sugarcrm.core.rest.op
com.advantco.sugarcrm.core.rest.op.v10
com.advantco.sugarcrm.core.rest.parser
com.advantco.sugarcrm.core.rest.parser.object
com.advantco.sugarcrm.core.rest.parser.xml
com.advantco.sugarcrm.core.rest.service
com.advantco.sugarcrm.core.result
com.advantco.sugarcrm.core.result.v10
com.advantco.sugarcrm.core.service
com.advantco.sugarcrm.core.util
com.advantco.sugarcrm.core.xml
javax.activation
javax.crypto
javax.crypto.spec
javax.mail
javax.xml.bind
javax.xml.parsers
javax.xml.stream
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.stream
org.apache.commons.codec.binary
org.apache.commons.collections4.map
org.apache.commons.httpclient
org.apache.commons.httpclient.util
org.json