【发布时间】:2011-09-21 03:55:55
【问题描述】:
我有几个文件是
调解和 smsgw中介
我使用这个脚本来提取结果并将其放入 tmp.txt
for file in `ls -1 ocsmediation.log.$DATE-*`
do
Get OCSID
cd $DIRLOG
OCSID=$(tr " " "\n" < ocsmediation.log.2011-09-19-00 | egrep "ocs[0-9][0-9][0-9]+")
cd $CURDIR
echo $OCSID >> tmp.txt
done
接下来我需要使用 tmp.txt 的结果作为我的第二个脚本的输入
cd $CURDIR
tr " " "\n" < tmp.txt
cd $DIRLOG
for file in `ls -1 smsgwmediation.log.$DATE-*`
do
cd $CURDIR
cat tmp.txt | while read ID ; do
SENDMSG=`awk '$0>=from&&$0<=to' from="$DATE $HR:$MIN" to="$DATE $HR:$MAX" $file | grep "$ID" |grep "Send" | wc -l`
echo "$file: $SENDMSG: $ID" >> $CURDIR/sampl_send.$DATE.txt
done
done
现在 sampl_send>$DATE.txt 没有创建,也没有错误。仅供参考 tmp.txt 包含如下行:
ocsid143243324, ocsid34543543534, bla bla 这就是为什么我使用 tr 将空格转换为换行符,这样我就可以逐行读取 ocsid
我只是不明白为什么我没有得到想要的结果 (sampl_send>$DATE.txt) 哦,上面的脚本只是我真实脚本中的 sn-ps,所以你不会看到像
这样的标准行#!/usr/bin/bash
谢谢你
【问题讨论】:
-
旁注:你不需要'for file in
ls -1 ocsmediation.log.$DATE-*'...这可以表示为'for file in ocsmediation.log.$DATE-*'。