2014-11-24 3 views
0

나는 bash 셸로 작업 중이므로 검색 할 때 일부 백업이 필요합니다.sed를 사용하여 단어 및 마지막 단어 받기

필자에게 필요한 두 가지 정보가있는 한 줄의 Java 구성 출력이 있습니다. 이러한 출력은 매우 길고 혼란 스럽기 때문에 sed를 사용하여 출력을 정리하고 싶습니다. 내가 파일에서 필요로하는의 -Xmx입니다

sed -n 's/(.[a-z]*[0-9]*[a-z])/*\([^ ]* *\)/\1 \2/' 

다음과 같이 구축되는 : Xmx1024m과

나는 또한이 라인의 마지막 단어가 필요

그래서,이 시도.

예 :

내가 필요로 무엇
was.status.socket=58963 -Dosgi.install.area.configuration.area=opt/was/example -Xms256m -Xmx1024m -Xcompressedrefs -Djavarofiles/nodeagent/properties/server.policy lastword 

:

Xmx1024 lastword 

당신이 나를 도울 수 있습니까?

감사합니다.

KevinD

+0

여기에 패턴이 무엇입니까? 무엇을 추출 하시겠습니까? X 번째 필드? 그 분야는 ... 뭐라고 요? 그것을 지정하십시오. – fedorqui

답변

0
sed -r 's/.*(Xmx[0-9]+)m.* /\1 /' 

예 :

[email protected]:~/AMD_C$ echo "was.status.socket=58963 -Dosgi.install.area.configuration.area=opt/was/example -Xms256m -Xmx1024m -Xcompressedrefs -Djavarofiles/nodeagent/properties/server.policy lastword" | sed -r 's/.*(Xmx[0-9]+)m.* /\1 /' 
Xmx1024 lastword 
1

다음은 마지막 단어에 그 이후의 -Xmx 전에 모든 것을 모든 것을까지 제거합니다

sed 's/.*\(Xmx[^ ]*\) .* /\1 /' 
+1

@fedorqui : 매우 사실! 고침, 고마워. – choroba