2016-09-07 2 views
0

Я пытаюсь извлечь часть текста из вывода. Как-то мое регулярное выражение работает в блокноте ++, но не в оболочке.извлечь текст в сценарий оболочки

Вот результат:

-Duser.instal-Djava.library.path=/apps/WebSphere/AppServer85i2/lib/native/aix/ppc_64/:/app 
s/WebSphere/AppServer85i2/java/jre/lib/ppc64/compressedrefs:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/Ap 
pServer85i2/java/jre/lib/ppc64/compressedrefs:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64/j9vm:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/AppServer85 
i2/java/jre/../lib/ppc64:/apps/WebSphere/AppServer85i2/bin:/apps/WebSphere/AppServer85i2/nulldllsdir:/usr/lib:/usr/lib: -Djava.endorsed.dirs=/apps/WebSphere/AppServer85i2/endor 
sed_apis:/apps/WebSphere/AppServer85i2/java/jre/lib/endorsed -Duser.install.root=/apps/WebSphere/profiles85i2/node -Djava.security.auth.login.config=/apps/WebSphere/profiles85i2/node/properties/wsjaas.conf -Djava.security.policy=/ 
apps/WebSphere/profiles85i2/node/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServ 
er /apps/WebSphere/profiles85i2/node/config hello hello2 PROJ1_LSDS-1 
    root 2057l -Dcom.ibm.xtq.processor.overrideSecureProcessing=true -Xbootclasspath/p:/apps/WebSphere/AppSer 
ver85i2/java/jre/lib/ibmorb.jar -classpath /apps/WebSphere/profiles85i2/node/properties:/apps/WebSphere/AppServer85i2/properties:/apps/WebSphere/AppServer85i2/lib/startup.jar:/ 
apps/WebSphere/AppServer85i2/lib/bootstrap.jar:/apps/WebSphere/AppServer85i2/lib/jsf-nls.jar:/apps/WebSphere/AppServer85i2/lib/lmproxy.jar:/apps/WebSphere/AppServer85i2/lib/url 
protocols.jar:/apps/WebSphere/AppServer85i2/deploytool/itp/batchboot.jar:/apps/WebSphere/AppServer85i2/deploytool/itp/batch2.jar:/apps/WebSphere/AppServer85i2/java/lib/tools.ja 
r -Dibm.websphere.internalClassAccessMode=allow -Xms50m -Xmx256m -Xcompressedrefs -Xscmaxaot4M -Xscmx90M -Dws.ext.dirs=/apps/WebSphere/AppServer85i2/java/lib:/apps/WebSphere/pr 
ofiles85i2/node/classes:/apps/WebSphere/AppServer85i2/classes:/apps/WebSphere/AppServer85i2/lib:/apps/WebSphere/AppServer85i2/installedChannels:/apps/WebSphere/AppServer85i2/li 
b/ext:/apps/WebSphere/AppServer85i2/web/help:/apps/WebSphere/AppServer85i2/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/apps/WebSphere/AppServer 
85i2/derby -Dcom.ibm.itp.location=/apps/WebSphere/AppServer85i2/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/apps/WebSphere/profiles85i2/node -Djava.ext. 
dirs=/apps/WebSphere/AppServer85i2/tivoli/tam:/apps/WebSphere/AppServer85i2/java/jre/lib/ext -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder 
-Dpython.cachedir=/apps/WebSphere/profiles85i2/node/temp/cachedir -Dwas.install.root=/apps/WebSphere/AppServer85i2 -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManage 
r -Dserver.root=/apps/WebSphere/profiles85i2/node -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Dcom.interwoven.livesite.fileappender.root=/apps/WebS 
phere/profiles85i2/node/logs/PROJ1PP_LSDS-1 -Dlog4j.configuration=log4j.xml -Dlog4j.debug=true -Djava.library.path=/apps/WebSphere/AppServer85i2/lib/native/aix/ppc_64/:/apps/We 
bSphere/AppServer85i2/java/jre/lib/ppc64/compressedrefs:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/AppSer 
ver85i2/java/jre/lib/ppc64/compressedrefs:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64/j9vm:/apps/WebSphere/AppServer85i2/java/jre/lib/ppc64:/apps/WebSphere/AppServer85i2/j 
ava/jre/../lib/ppc64:/apps/WebSphere/AppServer85i2/bin:/apps/WebSphere/AppServer85i2/nulldllsdir:/usr/lib:/usr/lib: 

Я ищу: параметр «-Duser.install.root=», и я хочу, чтобы извлечь значение: «/apps/WebSphere/profiles85/node».

Есть 2 из них на выходе. Я должен принять один путь и передать его другому сценарию. Регулярное выражение, которое я использую для извлечения текста, который я хочу.

"- Duser.install.root=([\/\w\/]+?)" это регулярное выражение работает в блокноте.

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

Заранее благодарим за ответы.

+0

Как вы пытаетесь использовать это регулярное выражение в оболочке? –

ответ

0

С СЭД:

$ sed -n "s/.*-Duser.install.root=\([^ ]*\).*/\1/p" file | uniq 
/apps/WebSphere/profiles85i2/node 

в сценарий оболочки:

res=$(sed -n "s/.*-Duser.install.root=\([^ ]*\).*/\1/p" file | uniq) 
echo "$res" 

выход:

/apps/WebSphere/profiles85i2/node 
+0

благодарим вас за быструю обратную связь, когда я запускаю предоставленную команду, я все равно получаю все выходные данные. вместо вывод: /apps/WebSphere/profiles85i2/node – huso

+0

Извините, отсутствует опция '-n' и' uniq' для вывода только одного вхождения. Я обновил. – SLePort

+0

да, теперь все в порядке. – huso

Смежные вопросы