需要一些关于shell脚本上的awk/grep命令的帮助吗
这是关于 我有一个日志文件,我正在尝试编写一个shell脚本来查找暂停/播放是否发生(成功/失败) 脚本应执行以下操作:需要一些关于shell脚本上的awk/grep命令的帮助吗,shell,awk,grep,Shell,Awk,Grep,这是关于 我有一个日志文件,我正在尝试编写一个shell脚本来查找暂停/播放是否发生(成功/失败) 脚本应执行以下操作: if ("trickModeRequest":{"rate":0.0}) { if ("status":"OK") printf("Pause Successful"); else if ("status":"GENERAL_ERROR") printf("Pause failed"); else if ("status":"UNRE
if ("trickModeRequest":{"rate":0.0})
{
if ("status":"OK")
printf("Pause Successful");
else if ("status":"GENERAL_ERROR")
printf("Pause failed");
else if ("status":"UNRECOGNIZED REQUEST")
printf("Pause failed");
}
同样地:
if ("trickModeRequest":{"rate":1.0})
{
if ("status":"OK")
printf("Play Successful");
else if ("status":"GENERAL_ERROR")
printf("Play failed");
else if ("status":"UNRECOGNIZED REQUEST")
printf("Play failed");
}
我的脚本文件:
logfile=$1
awk '/trickModeRequest/ && /status\"\:\"GENERAL_ERROR/{ print "trickModeRequestFAILED" } /trickModeRequest/ && /status\":\"OK/ {print "trickModeRequestSUCCESS"} ' $logfile
问题是{“trickModeRequest”:{“rate”:0.0}或{“trickModeRequest”:{“rate”:1.0}不在同一段日志中,所以我不知道如何区分暂停/播放
我的日志文件(logs.txt):
按照您的逻辑,您可以使用变量
type
来跟踪调用。事实上,在日志中,在响应之前,您总是有一行列出接收到的json:…callParams
。如果您总是有这个序列(您的示例很难猜测),您可以执行以下操作:
awk 'BEGIN { type=""; } /Received json/ && /"rate":1.0/ {type="play"} /Received json/ && /"rate":0.0/ {type="pause"} <your code>' $logfile
输出:
pause SUCCESSFUL
play SUCCESSFUL
谢谢Derlin.让我来验证iTunesed
是否已收到
,而不是调用参数
。那么,它是否有效?
awk 'BEGIN{ type=""; } /trickModeRequest/ && /status\"\:\"GENERAL_ERROR/{ print type, "FAILED" } /trickModeRequest/ && /status\":\"OK/ {print type, "SUCCESSFUL"} /Received json/ && /"rate":1.0/ {type="play"} /Received json/ && /"rate":0.0/ {type="pause"} ' $logfile
pause SUCCESSFUL
play SUCCESSFUL