쉘스크립트로 로그파일에 임의의 필드값을 더해 총갯수를 구하는 스크립트를 작성하려한다.
상황은
1)아래처럼 생긴로그파일에 3번째 위치한 값의 합을 구하고 싶은 경우
- 로그파일
a 1:1 100
c 1:2 99
d 1:2 10
b 1:2 11
- 스크립트
#!/bin/bash
RES=`cat /tmp/appLogs/log/20150116.log | awk '{size += $3} END {print"Total:"size"개수"}'`
echo $RES
2) 특정 디렉터리에 파일들의 총 사이즈를 구하고 싶은 경우
size=0
find / -name core -type f -exec ls -l {} \; | while read line
do
set $line
size=`expr $size + $5`
done
echo "size is : $size Bytes"
또는
find / -name core -exec du -sk {} \; | awk '{size +=$1} END {print"Total:"size" KB"}'
'쉘스크립트애들' 카테고리의 다른 글
find . -mmin +5 -mmin -10 # find files modified between (0) | 2015.12.03 |
---|---|
find . -type f -mmin -40 | xargs head -n 1 (0) | 2015.12.03 |
string to int and sum (${TOTAL_ITEM_CNT#0}) (0) | 2015.12.03 |
쉘스크립트 문자열추출 : cut -d "[" -f 3 | cut -d "]" -f 1 (0) | 2015.12.03 |
linux diff 확인 하는 쉘스크립트 (0) | 2015.12.03 |