2016-07-28 30 views
-4

UNIX zu extrahieren: in einer Zeile wie unten (Ausgabe von PS), ich muss Extrahiere nur den Servernamen (der nach -Dweblogic.Name kommt =)UNIX: in einer Zeile wie unten (Ausgabe von ps), ich muss nur den Servernamen (der nach -Dweblogic.Name =)

user 25765 25711 0 Jun11? 10:21:15 /opt/bea/wls1033/jdk1.6.0_22/bin/java -server -Xms512m -Xmx512m -XX: PermSize = 128m -XX: MaxPermSize = 256m -verbose: gc -Xloggc:/var/prod/Protokolle/DEVA/DEVA_SDAT202A/gc_DEVA_.log -Dweblogic.Name = DEVA_SDAT202A -Djava.security.policy =/opt/bea/wls1033/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled = true -Dweblogic .system.BootIdentityFile =/usr/prod/domänen/DEVA/server/DEVA_SDAT202A/data/nodemanager/boot.properties -Dweblogic.nodemanager.ServiceEnabled = true -Dweblogic.security.SSL.ignoreHostnameVerification = false -Dweblogic.ReverseDNSAllowed = false - Dsdat.config =/usr/prod/domains/DEVA/SDAT/config/sdat.properties

+3

See [fragen] und erneut versuchen. –

Antwort

0

Was:

ps ...parameters... | sed -e "s/^.* -Dweblogic.Name=\([^ ]*\).*$/\1/" 

Was ist das? Verwenden Sie sed, um alle Sachen vom Anfang der Zeichenfolge (^) bis einschließlich "-Dweblogic.Name =" sowie alle Sachen nach dem Wert von weblogic.Name bis zum Ende von zu löschen die Zeichenfolge ($).

-1

Perl ist wahrscheinlich nicht das beste Werkzeug, aber wenn Sie es vorziehen, wird so etwas funktionieren. Ich nehme an, der Servername darf keine Leerzeichen enthalten. Es werden Zeilen ausgeschlossen, die nicht übereinstimmen. Sie können es zuerst durch grep filtern, wenn Sie es leichter finden.

ps whatever_args | perl -ne "print \"$1\n\" if (/Dweblogic.Name=([^\s]+)/)" 

ich unter Windows getestet damit die \ „aber ich denke, Unix mehr ist von einfachen Anführungszeichen in der Befehlszeile zu akzeptieren.

+0

*“ Perl wahrscheinlich nicht das ist bestes Werkzeug "* Einige Leute würden nicht zustimmen! Welche Sprache bevorzugst du für Textmanipulation? – Borodin

+0

Wenn jemand nicht im Programmieren als Ganzes interessiert ist, könnten sie viel mehr vom Lernen von sed, awk oder verwandten Werkzeugen bekommen. –

+0

Das Das ist natürlich eine Phrase für den Verkäufer: Natürlich könnte "jeder" viel mehr aus "irgendwas" herausholen, aber was würden sie mit sed oder awk machen, wenn sie kein Interesse an der Programmierung hätten? Die Leute sind hauptsächlich am Lernen interessiert neue Fähigkeiten oder für jemanden bezahlen, der diese Fähigkeiten bereits hat. Stack Overflow hat eine dritte Kategorie von Menschen offenbart, die nicht lernen wollen, sich aber weigern, eine Gebühr zu zahlen. Ich denke nicht, dass es eine großartige Idee ist, jemanden zu ermutigen, der sich in diese Kategorie einreiht. – Borodin