如何每五分钟从CSV解析一次最后一个值?

时间:2015-05-31 10:57:37

标签: linux bash shell unix

我需要运行脚本来每隔五分钟从csv解析一次值,但是不应该从最后一点解析所有值。

1 个答案:

答案 0 :(得分:1)

真的只是在@ hek2mgl的建议上加入一些内容并为你实施。

我将日志文件的最后已知长度存储在另一个名为lastlength的文件中。

#!/bin/bash

LOGFILE=somelog.csv
LASTLEN=lastlength

# Pre-set seek to start of file...
seek=0

# ... but overwrite if there was a previously seen value
[ -f lastlength ] && seek=$(cat lastlength)

echo DEBUG: Starting from offset $seek

# Update last seen length into file - parameters to "stat" will differ on Linux
stat -f "%Dz" "$LOGFILE" > "$LASTLEN"

# Get last line of file starting from previous position
dd if="$LOGFILE" bs=$seek skip=1 2> /dev/null | tail -1

我正在使用OSX,所以如果您使用的是Linux,那么倒数第二行中stat命令的参数会有所不同,可能是

stat -c%s "$LOGFILE"  > "$LASTLEN"

我会让你把它放到你的 crontab 中,这样每隔5分钟就会调用一次。