2011-08-04 5 views
0
log=/u00/app/oracle/product/10.2.0.4/network/admin/listener.log 

내가 어떤 사람이 listener.log를 추출하는 나에게 도움이SED 추출물은

listener.log 
/u00/app/oracle/product/10.2.0.4/network/admin/ 

같이 추출 할. 그러나 다른 하나와 충돌합니다. 당신이 원하는대로

#echo $log | sed 's!.*/!!' 
listener.log 

답변

1
s/log=\(.*\/\)\([a-zA-Z0-9\.]*\)/\2 \1/ 

첫째, 부품을 선택하고 그들을 밖으로 인쇄 할 수 있습니다.

이 작동 방법 :

  • 욕심 모든 것을 선택
  • 철수 당신이 그것을 마무리하는 슬래시 때까지; 첫 번째 경기에서 그 부분을 넣으십시오.
  • 그 다음에 오는 것을 골라서 두 번째 경기에 넣으십시오.
  • 그런 다음 두 번째 경기를 먼저 인쇄 한 다음 첫 경기를 인쇄하십시오.
0
log=/u00/app/oracle/product/10.2.0.4/network/admin/listener.log 
echo "$(dirname "$log")" # ==> /u00/app/oracle/product/10.2.0.4/network/admin 
echo "$(basename "$log")" # ==> listener.log 

또한

echo "${log%/*}" # ==> /u00/app/oracle/product/10.2.0.4/network/admin 
echo "${log##*/}" # ==> listener.log 
0
#echo $log | sed 's|[^/]*$||' 

("줄 끝에 다음 비 슬래시 문자의 문자열을 삭제합니다.")