我需要从一个大的讨厌的 ps 字符串中解析一些信息。我需要获取用户名和 PID,然后将 /usr/user/java.instanceName/ 部分放在一行中。
我尝试了 grep、sed 和 awk,但我不太了解它们中的任何一个。在为这个简单的任务阅读了几个小时之后,我希望有人可以快速敲出一条线。
这是我在询问之前尝试的最后一件事:
ps auxwww | sed 's/^[a-z]* *[0-9]*//g;s/\/usr\/user\/[a-z._0-9]*//g'
这是 ps auxwww 命令的标准输出:
根 3837 2.5 32.5 4697784 2657720 ?Sl Sep13 30:23 /usr/java/jdk16/bin b.WebService.port=80 -Dorg.jboss.naming.NamingService.port=90 -Dorg.jboss.na mi.port=90 -Dorg.jboss.invocation。 jrmp.server.JRMPInvoker.port=40 -Dorg.jbos server.PooledInvoker.port=41 -Dorg.jboss.remoting.transport.Connector.port=42 ing.transport.Connector.messaging.port=180 -Dorg.jboss。 remoting.transport.Conn 1 -Djboss.bind.address=10.0.0.1 -Dtomcat.bind.address=10.0.0.1 -Dtomca cat.https.port=443 -Djava.net.preferIPv4Stack=true
che.cluster.name=cluster =INVALIDATION_ASYNC
cache.mcast.port=457 -Dejb3.cache.mode=LOCAL -Dejb3.cache.cluster.name=EJB3-en ss.platform.mbeanserver -Djavax.management.builder.initial=org.jboss.system.serv ilderImpl -服务器 -Dsun.security.ssl.allowUnsafeRenegotiatio
ed.dirs=/usr/user/java.instanceName/lib/endorsed -Dsun.rmi.dgc.client.gcInte mi.dgc.server.gcInterval=3600000 -Djavax.net.ssl .trustStore=/usr/java/jdk16/jre/ -Djavax.net.ssl.trustStorePassword=pass123 -Djavax.net.ssl.trustStoreType=JKS pGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseParNewG m - XX:PermSize=512m -XX:MaxPermSize=512m -jar run.jar -c jvmname -b 10.0.1.1