awk (или sed или grep), чтобы вырезать параметр, знак равенства и значение - PullRequest
0 голосов
/ 06 декабря 2018

Я новичок в Linux.Когда я запускаю такую ​​команду

 ps -ef | grep 5312

, система показывает мне всю информацию о процессе с PID 5312. Например, вывод выглядит как

tomcat    5312     1  0 20:03 ?        00:00:09 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xms500M -Xmx700M -server -XX:+UseParallelGC -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp org.apache.catalina.startup.Bootstrap start

Из такого вывода я хочу знать только "tmpdir= / opt / tomcat / temp "параметр.Мне нужен только tmpdir, знак равенства и значение после знака равенства.Как я могу сделать это с помощью sed или awk (или, может быть, grep)?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

с тех пор, как вы запросили awk:

ps -ef|grep -v awk|awk '{for(i=1;i<=NF;i++){if($i ~ /tmpdir/){print $i}}}' | awk -F'.' '{print $NF}'

, где:

ps -ef: показывает весь процесс.

grep -v awk: заставляет вас не отображатьваш собственный процесс awk.

for(i=1;i<=NF;i++): будет проходить цикл по всем полям текущей записи, пока не будет достигнуто последнее поле .

if($i ~ /tmpdir/){print $i}}: так как вы цикл по полям, если текущий содержит ключевую строку "tmpdir" напечатает его (поле).

awk -F'.' '{print $NF}': вы запросили только параметр tmpdir, поэтому вы хотите, чтобы все в последнем поле имелоточка как разделитель полей.

0 голосов
/ 06 декабря 2018

Используйте grep с опцией -o, чтобы вернуть только соответствующую часть.

ps -ef | grep 5312 | grep -o 'tmpdir=[^ ]*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...