다음 ps
과 같이 명령 에서 응용 프로그램 이름을 추출하려고합니다 .
ps -af -u sas |grep "java"| grep -v "grep"
그리고 그것은 다음을 생성합니다 :
sas 24431 1 0 Oct10 ? 00:51:08 /usr/lib/jvm/java-1.7.0-oracle-1.7.0.25.x86_64/jre/bin/java -Denv=DEV -Dapp.name=myApp -Xms512m -Xmx1g -Dlog.dir=/apps/java/logs
사용하려고 egrep
했지만 작동하지 않는 것 같습니다.
ps -af -u sas|grep "java"| grep -v "grep"| egrep -o "-Dapp.name"
-Dapp.name
"myApp"값만 얻으려면 어떻게 해야합니까?
grep -o -- -Dapp.name
grep [j]ava
명령을 피하기 위해 사용할 수 있습니다 grep -v "grep"
(bash에서 테스트 됨)
grep
패턴이 시작-
, 당신은 후를 둘 필요-e
옵션을 선택합니다. 그렇지 않으면 옵션으로 취급됩니다. 그러나 그것은 단어-Dapp.name
뒤에 나오는 부분 이 아니라 단어와 일치 합니다.