awk에서 hostname 사용관련...
글쓴이: reverse79 / 작성시간: 수, 2012/07/25 - 10:00오전
안녕하세요.
현재 Centos를 사용중이며 makeLog.sh라는 쉘 파일을 만들었습니다.
해당 쉘 파일의 주 내용은 지정된 log파일에서 grep과 awk로 특정 내용을 출력하고 있습니다.
이때 출력되는 포멧의 제일 첫 컬럼에는 "호스트명"을 사용하고 싶은데...
한 달 남짓 찾아봐도 방법을 모르겠더군요.
awk '{date=$1; time=$2; name=$11; info=$19; print NR"\tsvr01\t"date "\t" time "\t" name "\t" info}'
대충 위 처럼 사용하고 있습니다.
쉘 스크립트라서 별도의 변수를 선언해서 hostname을 할당 후
print에서 출력하려고 했는데 아직 리눅스에 익숙치 않아서 그런지 잘 안되더군요.
해외 자료도 한참 찾고 따라 해 봐도 원하는 결과가 안나오고...
현재는 직접 "svr01"이라고 타이핑 했는데 해당 부분을 실제 서버의 호스트 명으로 대치가 가능할까요?
Forums:
음 ..
-v 옵션을 써보세요.
$ awk -v h=`hostname` '{... PRINT NR"\t"h"\t"..}'
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다.
ㅎㅎㅎ..변수 할당하는 방법으로 해도 안되었던것 같은데 제가 잘 못 사용했었나 봅니다.
감사합니다.*^^*
ymir님이 정답입니다만, 살짝 바꾸면.
awk '{date=$1; time=$2; name=$11; info=$19; print NR"\t'`hostname`'\t"date "\t" time "\t" name "\t" info}'
감사합니다.
처음에는 이 방법처럼 하려다 안되서 변수로 설정하는 방법등을 했었는데 제가 잘 못 사용했었나 보네요.ㅜㅜ
지금 알려주신 방법으로 테스트 해 보니 잘 동작하는군요.^^
감사합니다.
댓글 달기