2016-10-06 6 views
0

로그 파일에서 15 분 사이에 데이터를 가져 오려고했지만 sed가 작동하지 않고 sed : command가 깨져서 생성되었습니다 :/38 오류. 여기서 38은 min1의 값입니다.Sed 명령이 깨져 오류

Current_Time_in_Seconds=`date +"%T" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'` 

subtract_mins() { 
Fifteen_minute_before=`expr $Current_Time_in_Seconds - $1` 
echo $Fifteen_minute_before 
} 

Change_Time_into_Seconds() { 
Fifteen_minute_before1=`subtract_mins $1` 
sec=`expr $Fifteen_minute_before1 % 60` 
i=`expr $Fifteen_minute_before1/60` 
min=`expr $i % 60` 
hrs=`expr $i/60` 
timestamp=`(printf "%d:%02d:%02d" $hrs $min $sec)` 
echo "$min $hrs" 
} 


sDate= date +"%d-%b-%y" 
Curr_hrs=`date +"%T" |awk -F: '{ print ($1)}'` 
Curr_min=`date +"%T" |awk -F: '{ print ($2)}'` 


timestamp=`Change_Time_into_Seconds 900` 
hrs1=`echo $timestamp | cut -f 2` 
min1=`echo $timestamp | cut -f 1` 
sed -n '/'$sDate' '$hrs1':'$min1':[0-6][0-9]/,/'$sDate' '$Curr_hrs':'$Curr_min':[0-6][0-9]/p' /srvrs/mvprd/bea/user_projects/domains/mvwlp_prd/servers/mvwlp_s1/logs/mvwlp_s1_yyyy_MM_dd_hh_mm.log> /srvrs/mvprd/scripts/MultiVU_Service_count/output/out_1.txt 

답변

2

시도는 두 배로 인용하여 변수 :

sed -n '/'"$sDate"' '"$hrs1"':'"$min1"':[0-6][0-9]/,/'"$sDate"' '"$Curr_hrs"':'"$Curr_min"':[0-6][0-9]/p' /srvrs/mvprd/bea/user_projects/domains/mvwlp_prd/servers/mvwlp_s1/logs/mvwlp_s1_yyyy_MM_dd_hh_mm.log> /srvrs/mvprd/scripts/MultiVU_Service_count/output/out_1.txt 

하거나 따옴표에 나오지도 명령을 묶

sed -n "/$sDate $hrs1:$min1:[0-6][0-9]/,/$sDate $Curr_hrs:$Curr_min:[0-6][0-9]/p" /srvrs/mvprd/bea/user_projects/domains/mvwlp_prd/servers/mvwlp_s1/logs/mvwlp_s1_yyyy_MM_dd_hh_mm.log> /srvrs/mvprd/scripts/MultiVU_Service_count/output/out_1.txt 
+0

그것의 지금은 그 grabled되어 나오지도 말을하지 않습니다 실제로 작동하지 하지만 출력이 나오지 않습니다 –

+0

파일에서이 패턴과 일치하지 않을 수도 있습니다. – SLePort

+0

@ Kenavoz 내가 거기에있는 패턴을 검색했는데 문제는 줄을 긋고있는 줄에있다 : - timestamp ='Change_Time_into_Seconds 900' hrs1 ='echo $ timestamp | cut -f 2' min1 ='echo $ timestamp | 잘라 내기 -f 1 ' 이 두 가지는 올바른 값을 가져올 수 없습니다. –