다음 스크립트가 있습니다.
LOOKUPS=/tmp/$0.LOOKUPS.$$
OK=/tmp/$0.OK.$$
KO=/tmp/$0.KO.$$
NOVENUE=/tmp/$0.NOVENUE.$$
trap "rm -f $LOOKUPS $OK $KO $NOVENUE" 0 1 2 3 4 5 13 15
tu=`$APP_SERVICE | cut -b 9-11`
date=`date +%Y%m%d`
echo "date before change: ${date}"
H=$(date +%H)
if [[ $H -ge 0 && $H -lt 9 ]]
then
trt_date=$(date --date 'yesterday' +'%Y%m%d')
echo "date changed: ${date}"
else
echo "date didnt change: ${date}"
fi
grep "^$date.*lookup .. for.*" $UTP_LOG_DIR/logs.* | awk '{print $13"_"$4" "$11" "$17"="$19" "$20"="$23}' | sed 's/\[.*\]//g' | sed -e 's/string{//g' -e 's/, / /g' -e 's/=(/=/g' -e 's/)).//g' -e 's/}//g' | sort -u > $LOOKUPS
grep " OK " $LOOKUPS | awk '{print $1" "$3" "$4}' > $OK
grep " KO " $LOOKUPS | awk '{print $1" "$3" "$4}' > $KO
grep "^$date.*Can't find a venue for" $UTP_LOG_DIR/logs.* | sed 's/-$//g' | awk '{print $NF}' | sort -u > $NOVENUE
while read line
do
if [ $(grep "$line" $OK | wc -l) -eq 0 ]
then
isin=$(echo $line | cut -d'_' -f1)
feed=$(echo $line | cut -d'_' -f2,3)
filters=$(echo "$line" | cut -d' ' -f2-)
echo Fail lookup for $isin in feed $feed with filters: "$filters"
fi
done < $KO
while read line
do
if [ $(grep "$line" $OK | wc -l) -eq 0 ]
then
echo Cannot find venue for $line
fi
done < $NOVENUE
출력 파일을 생성하려면 stdout
파일로 리디렉션합니다.lookup.sh > file.txt
하지만 출력 파일을 자동으로 생성하려면 필요합니다.
답변1
파일에서 전체 스크립트를 다음으로 묶습니다.
{
} > file.txt
리디렉션됩니다 {}
.
답변2
echo Something > the-file
예를 들어 언제든지 콘텐츠를 파일에 채울 수 있습니다 .