我有一个动态 csv/tsv 文件(制表符分隔符),其中每小时在借记计数和分数计数下方添加一个新行。Receipt Count下不会添加新行,只有值每小时发生变化。请看下面两个例子以供参考。
第 3 小时的 FileA.csv 示例
Debit Count VALUE
hour 1 5
hour 2 81
hour 3 15
Score Count
hour 1 31
hour 2 66
hour 3 9
Receipt Count
age logs 23
bus logs 21
pig logs 7
dog logs 40
Run Code Online (Sandbox Code Playgroud)
第 7 小时的 FileA.csv 示例
Debit Count VALUE
hour 1 5
hour 2 81
hour 3 15
hour 4 20
hour 5 52
hour 6 33
hour 7 35
Score Count
hour 1 31
hour 2 66
hour 3 9
hour 4 112
hour 5 15
hour 6 38
hour 7 21
Receipt Count
age logs 13
bus logs 28
pig logs 85
dog logs 55
Run Code Online (Sandbox Code Playgroud)
因此,我想要实现的是将 FileA.csv 分离为 ABC.csv 、 DEF.csv 和 GHI.csv ,请记住借记计数和分数计数下方的行每小时都会增加。新文件 ABC.csv、DEF.csv、GHI.csv 将每小时替换一次
使用第三个小时的例子来参考我想要实现的目标
ABC.csv
Debit Count VALUE
hour 1 5
hour 2 81
hour 3 15
Run Code Online (Sandbox Code Playgroud)
DEF.csv
Score Count
hour 1 31
hour 2 66
hour 3 9
Run Code Online (Sandbox Code Playgroud)
GHI.csv
Receipt Count
age logs 23
bus logs 21
pig logs 7
dog logs 40
Run Code Online (Sandbox Code Playgroud)
我尝试做什么(已编辑)
awk f="ABC.csv DEF.csv GHI.csv" '
BEGIN {split(f,files)} /^Debit/ /^Score/ /^Receipt/ {n++} {print>files[n]}' FileA.csv
Run Code Online (Sandbox Code Playgroud)
由于上一篇文章缺乏重点,该问题已关闭,我可以选择编辑或重新发布该问题。我决定以更清晰的方式重新发布该问题,以便以前可能看过该问题的其他人可以再次看到该问题。谢谢
用于awk在到达每个标题行时更改输出文件。
awk '/Debit Count/ { of="ABC.csv" }
/Score Count/ { of="DEF.csv" }
/Receipt Count/ { of="GHI.csv" }
{print >of}' FileA.csv
Run Code Online (Sandbox Code Playgroud)