bash - 如何使用 BASH 将 .txt 文件数据存储在 CSV 文件的不同列中?
问题描述
我有一个具有以下数据结构的 .txt 文件:
Scan Times:
33.3 seconds
77.4 seconds
33.3 seconds
77.4 seconds
Check Times:
110.30 seconds
72.99 seconds
72.16 seconds
110.30 seconds
Move Times:
73.66 seconds
90.77 seconds
72.87 seconds
71.75 seconds
Switch Times:
92.0 seconds
78.6 seconds
77.8 seconds
84.9 seconds
我现在想要获取该 .txt 文件并创建一个具有以下格式的 CSV 文件。
到目前为止,我的 bash 脚本有一个非常基本的布局,但我不确定如何继续:
inputFiles=("./Successes/SuccessSummary.txt" "./Failures/FailSummary.txt")
touch results.csv
for file in "${inputFiles[@]}"
do
while IFS= read -r line
do
#echo $line
if [ "$line" = "Scan Times:" ]
then
fi
if [ "$line" = "Check Times:" ]
then
fi
if [ "$line" = "Move Times:" ]
then
fi
if [ "$line" = "Switch Distances:" ]
then
fi
done < "$file"
done
解决方案
这是一个执行此操作的awk
脚本:
#!/usr/bin/awk -f
BEGIN {
OFS=","
colnum=0
}
/:$/ {
data[++colnum,1]=$0
rownum=1
}
/seconds$/ {
data[colnum,++rownum]=$1
}
END {
for (r = 1; r <= rownum; r++) {
for (c = 1; c <= colnum; c++) {
printf "%s%s", data[c,r], (c == colnum ? RS : OFS)
}
}
}
例子:
$ ./pivot input.txt
Scan Times:,Check Times:,Move Times:,Switch Times:
33.3,110.30,73.66,92.0
77.4,72.99,90.77,78.6
33.3,72.16,72.87,77.8
77.4,110.30,71.75,84.9
推荐阅读
- database - 在本地数据库中保存压缩的 base64 字符串是一个好习惯吗?
- python - 使 Tkinter 组合框滚动条和箭头按钮更大
- python-3.x - 基于 pandas 中特定列的聚合和索引
- prestashop - Prestashop - 删除客户时的附加代码
- wso2 - wso2is-km 从 5.7 升级到 5.10
- django - “AttributeError:'NoneType'对象没有属性'session'”在django allauth应用程序中覆盖SignupForm时
- c - 如何在 C 中将元素添加到链表的末尾?
- python-3.x - OSError:无法打开资源 - 文件“/usr/lib/python3/dist-packages/PIL/ImageFont.py”
- google-cloud-firestore - 我如何使用动态 ID 查询地图?
- java - Spring Boot Test @ConfigurationProperties 不绑定字段