【发布时间】:2014-11-15 22:29:39
【问题描述】:
我目前正在运行一个名为 (log2csv) 的 Bash 脚本,该脚本针对指定的 .log 文件运行。坐在所需的目录中,我可以在终端中输入:
log2csv Red1_1.log
这将创建 Red1_1.csv
这是我当前的 bash 脚本:
#!/bin/bash
for path
do
base=$(basename "$path")
noext="${base/.log}"
/Users/joshuacarter/bin/read_scalepack.pl "$path" > "${noext}.csv"
done
这个脚本实际上是在指定的日志上运行一个 perl 脚本,并将结果放在一个 CSV 输出中。
我也可以在终端中运行:
log2csv *.log
这将对当前目录中的所有 .log 文件运行脚本,并为每个文件创建 .csv 文件。
我希望脚本只在没有为它们创建 .csv 文件的 .log 文件上运行。在做了一些研究之后,我想我可能可以使用inotifywait 来实现这一点,但我不确定如何在我的脚本中进行这项工作?我还读到如果您覆盖文件,这可能是一个问题。任何帮助或想法将不胜感激!
【问题讨论】: