다시 쓴 스크립트.괜찮았으면 좋겠어요.
13064 단어 각본
#!/bin/sh
###############################################
# #
# author:lishujun #
# date:2013-4-17 #
# use:$./testread.sh 20130425 #
# #
###############################################
### load Library ###
. common
#init_date $1
#init_db
common_init_stat_date $1
stat_date=$statDate
### define global variable ###
logFile='./logs/'$stat_date'/wap_access_log.'$stat_date'*'
dataFile='./data/access_detail_'$stat_date'_small'
domain='pp.cn,sou.pp.cn,c0.pp.cn,c1.pp.cn,c2.pp.cn,c3.pp.cn'
#domain=$2
#domain='shuqi.com,pp.cn,shuqiread.com'
ucFlags='fr,ct,ac'
### functions ###
cleanDataFile()
{
echo clean data files...
rm $dataFile
}
makeDataFile()
{
#./kcat.sh $logFile | awk \
/www/scripts/stat/kcat.sh $logFile | awk \
-v domain=$domain \
-v ucFlags=$ucFlags \
-v dataFile=$dataFile \
'
function extractField(s)
{
gsub(/\[/,"",s)
gsub(/\]/,"",s)
return s
}
function extractFad(url)
{
#if(match(url,/\[FAD:/) > 0)
if(match(url,/\[FAD:[0-9]+\]/) > 0)
{
return substr(url,RSTART+5,RLENGTH-6)
}
return "-"
}
function parseUrl(url,params)
{
params["domain"] = "-"
if(match(url,/[:\/]/)>0)
{
params["domain"] = substr(url,1,RSTART-1)
}
params["path"] = "-"
if(match(url,/\/[^\?$]*[\?$]/)>0)
{
params["path"] = substr(url,RSTART,RLENGTH-1)
}
params["fr"] = "-"
if(match(url,/[&?]fr=[^&$]+/)!=0)
{
params["fr"]=substr(url,RSTART+4,RLENGTH-4)
}
params["ct"] = "-"
if(match(url,/[&?]ct=[^&$]+/)!=0)
{
params["ct"]=substr(url,RSTART+4,RLENGTH-4)
}
params["ac"] = "-"
if(match(url,/[&?]ac=[^&$]+/)!=0)
{
params["ac"]=substr(url,RSTART+4,RLENGTH-4)
}
}
BEGIN{
split(domain,domainList,",")
}
{
#print $0
userid = extractField($4)
url = extractField($6)
session = extractField($9)
fad = extractFad($0)
if(int(userid) < 1)
{
userid = session
}
for(i in domainList)
{
len = length(domainList[i])
if(substr(url,0,len) == domainList[i])
{
parseUrl(url,urlParams)
line = userid" "urlParams["domain"]" "urlParams["path"]" "urlParams["fr"]" "urlParams["ct"]" "urlParams["ac"]" "fad
#print line
if(line in list)
{
list[line]++
}
else
{
list[line] = 1
print line >> dataFile
}
break
}
}
}
'
}
main()
{
echo `date ` start...
cleanDataFile
makeDataFile
echo `date` done
}
#call main function
main
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity3D 시작하기(rolling ball) - 학습 노트만약 이 방법이 성공하지 못하면 각 구성 요소를 분류하여 다운로드할 수 있습니다. 항목은 3D를 선택하고 가져온 리소스는 None으로 선택할 수 있습니다. Scene: 각 게임마다 몇 개의 장면으로 구성되어 있으며,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.