我当前的解决方案有效,但我知道有更好的方法可以做到这一点。
我目前运行 macOS system.log 的尾部来查找关键字。我为每个要搜索的关键字都有一个单独的脚本,然后运行 writestate 命令来反映关键字已出现。
我更喜欢使用日志中显示的关键字触发器,例如“场景名称=[MOVIE]”,然后从字符串中解析 MOVIE 并将其插入到一个变量中,然后将其写入为状态。
我为创建的每个场景名称编写了以下脚本,但是直接将该值写入变量然后在收到命令时运行命令会更清晰。
#!/bin/bash
tail -F /var/log/system.log |
grep --line-buffered 'MOVIE' |
while read ; do ~/Applications/RacePointMedia/sclibridge writestate userDefined.ActiveScene MOVIE ; done
答案1
我使用这个 awk 语句从 mySQL.logs 获取内容。我为你的字符串和日志文件调整了它。
我不确定这会对你有帮助,但听起来可能会有帮助。这会从日志中获取包含匹配项的最后一行,并将最后一个字段放入 word_match 中。您可以将第一个字段的 {a=$0} 增加到 {a=$1},第二个字段的 {a=$2} 等等。
`word_match=`awk '/scene name=\[MOVIE\]/ {a=$0} END{ print a }' /var/log/system.log | awk '{print $(NF)}'
echo $word_match #to display what you got.
希望这可以帮助