ps
출력에 여러 문자열이 포함 된 Java 프로세스가 있습니다. 나는 단지 그것에서 특정 문자열을 원한다.awk를 사용하여 특정 문자열을 얻습니다.
예를 들어, 내가 원하는
root 5565 7687 0 Nov20 ? 00:00:54 /bin/java -Xms256m -Xmx512m -XX:MaxPermSize=128m -XX:PermSize=256m -XX:MaxPermSize=256m -Dstdout.file=/tmp/std.out -da -Dext.dir.class=profiles/ -Dprocess.name=java1 -Djava.security.policy=security.policy
그냥 process.name=java1
원하고 ps
출력에서 아무 것도 필요 없다. awk 또는 sed를 사용하여 확실한 방법을 찾을 수 없었습니다.
내가 사용하려고 오전 :
는ps -ef | grep java1 | grep -v grep | awk '/process.name/ {print $0}'
내가 얻을 출력은 ps -ef
밖으로이다.
더 간단한 방법이 있습니까?
출력을 얻는 가장 간단한 방법은'echo "process.name = java1"'입니다. 그게 유용 할 지 의심 스럽지만 2 greps와 awk 스크립트로하고 싶다고 말한 것보다 덜 유용합니다. 따라서 질문을 업데이트하여 정말로 당신이 무엇을하려고하는지 알려면 우리가 도울 수 있습니다. –
@ 에드 모튼 (EdMorton), 문제는 구체적이고 구체적으로 밝혀졌습니다. 편집 할 질문을 어떻게 제안 하시겠습니까? 내가받은 답을 생각해 보면, 그 자체가 문제가되었다고 말할 수 있습니다. 이해할 수있는 능력은 그다지 중요하지 않습니다. 그리고 두 개의 greps는 매우 일반적이며 awk는 내가 시도한 것의 예입니다. 의견을 말하고 투표하기 전에 생각하십시오. –
나는 모튼이 말한 것과 완전히 일치한다. 우리가 당신의 질문을 어떤 식 으로든 해석했기 때문에 많은 사람들이 대답했습니다. 우리가 각자의 의견에서 볼 수 있듯이, 아무 것도 당신에게 작용하지 않았습니다. 따라서 질문에 대한 설명을 얼마나 잘못했는지, 그리고 더 자세한 내용을 묻지 않고 얼마나 빨리 대답하는지 명확하게 설명합니다. – fedorqui