描述:
我有代码通过匹配存在于表单的多个文件夹中的 .log 文件的关键字/句子来提取时间戳log_Job_*
。
它计算不同进程的持续时间并将输出写入 .CSV 文件。
我想在我的 .csv 中包含哪些列:
- 文件名
- 进程类型
- 进口
- 证实
- . .
- 主分区持续时间
现在的问题是,我在 2. 进程类型下有 2 种类型的进程。所以,想到在这里使用 case 语句。并做了如下:
#!/bin/bash
cd /path/to/manoj/version_2019_logs/
for file in log_Job_*/manoj.log; do
ProcessType1="$(grep -F 'Running process mpeXbrlImport.xml' "$file" | awk '{print $5}' | cut -c 4-)"
ProcessType2="$(grep -F 'Running process mpeXbrlValidate.xml' "$file" | awk '{print $5}' | cut -c 4-)"
ProcessType="$ProcessType1","$ProcessType2"
case $ProcessType in
$ProcessType1)
#set of commands to get other variaqbles
Var="$Filename","$ProcessType","$TotalDuration","$Initialization","$MPEProcessDuration","$TotalPartitionDuration","$WaitPartitionDuration","$MainPartionDuration"
echo $Var >>OutputFile_Import.csv
;;
*)
#repeat the set of commands and this time save with different variable names
Var1="$Filename1","$ProcessType1","$TotalDuration1","$Initialization1","$MPEProcessDuration1","$TotalPartitionDuration1","$WaitPartitionDuration1","$MainPartionDuration1"
echo $Var1 >>OutputFile_Validate.csv
;;
esac
done
有了这个,我的计划是创建两个单独的 .CSV 文件Processtype
,然后将这两个文件连接起来。
问题:脚本正在成功执行,但最后它只生成一个文件,即OutputFile_Validate.csv
我已经仔细验证了脚本,没有重复使用任何变量。谁能告诉我,这可能是什么原因!!
如果我很好地理解了您的问题,您想在 import.csv
ProcessType1
不为空时提供,而在 validate.csv 不为空时提供ProcessType2
。如果
test
变量已设置且不为空,则可以:您的代码可能如下所示: