我有这样一个文件:
100,2015-09-01
100,2015-09-02
105,2015-09-01
645,2017-01-01
它只是一个数字和一个逗号分隔的日期。它有 20000 行。
我想将此文件转换为电子表格(Google、Excel、LibreOffice、任何格式,甚至 CSV),如果每个数字在给定日期出现,它会显示该数字。例如:
ID | 2015-09-01 | 2015-09-02 | 2017-01-01
----+------------+------------+-----------
100 | YES | YES | NO
105 | YES | NO | NO
645 | NO | NO | YES
我该怎么做?
我在 Linux 上,所以像 sed
、awk
等命令行实用程序是可用的,并且是自动执行此操作的首选方法。
最佳答案
可以使用 AWK 使其工作。
awk -F "," '{
numbers[$1]
dates[$2]
number_date[$1,$2]
} END {
for (number in numbers) printf ";%s", number;
printf "\n"
for (date in dates) {
printf "%s", date
for (number in numbers)
if ((number SUBSEP date) in number_date) printf ";YES"
else printf ";NO"
printf "\n"
}
}' input.csv | sort > output.csv
关于linux - 如何将基于日期的 CSV 文件转换为电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41987928/