Shell 코드를 작성하다보면 Java Property를 읽는 경우가 종종 있는데 보통은
. <FILE_PATH>
를 사용하면 FILE에 있는 각 변수 들이 환경 변수로 등록이 되어 사용된다.
보통은 문제가 없는데 만일 변수에 .이 있을 경우는 이를 command로 인식해 버려서 command를 실행하는 형태로 처리 되어 변수를 읽을 수 없게 된다. 역시 편한거에는 한계가 있다는 그래서 검색을 하다 보니 관련 해서 좋은 TIP을 발견
sed '/^\#/d' myprops.properties | grep 'someproperty' | tail -n 1 | cut -d "=" -f2-
sed로 #로 시작되는 Line을 제외한 후 grep로 원하는 property가 나오는 마지막 라인을 가져온 후 = 이후의 값을 읽어 온다.
추가적으로 trim을 처리 하는 부분을 추가하면 아래 처럼 쓸 수 있다.
JAVA_HOME=`sed '/^\#/d' build.properties | grep 'jdk.home' | tail -n 1 | cut -d "=" -f2- | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'`
->build.properites에서 jdk.home property를 읽어서 JAVA_HOME변수에 넣는다.
출처 : http://shrubbery.homeip.net/c/display/W/Reading+Java-style+Properties+Files+with+Shell
흠... 드뎌 LOG Processing관련한 내용까지도 Tech Ops가 처리 해 줘서 이제는 12시에 다시 읽어 나서 작업 돌리고 자는 일은 끝..
이제는 LOG ANALYZE 도 인수 인계 해 버리면 정말 OAS API와는 작별을 고하게 될 듯 싶다.
'개발자세상 > Shell 관련' 카테고리의 다른 글
파일 정보로 옵션 읽어 오기. (0) | 2016.03.26 |
---|---|
RPM Spec 실행 순서 (0) | 2016.02.05 |
첫번째 하위 폴더의 폴더 개수 구하기 (0) | 2014.09.11 |
텍스트 프로세싱 (0) | 2014.07.12 |
파일 기반의 do while 작성시 유의사항 (0) | 2014.06.19 |