我将合并多个.csv报告。
当我下载它时,它会写成这样:
文件1。
Name Name Flavor
AAA BBB CCC
AAA BBB CCC文件2。
Name Name Flavor
ACB DHB 123我尝试使用"awk“命令。
awk 'FNR== 1{print ""}1' *.csv >> ReportsVol.csv 通过它们,它合并了所有的文件。但输出结果随后就会出现。
Name Name Flavor
AAA BBB CCC
AAA BBB CCC
Name Name Flavor
ACB DHB 123但我希望每个文件之间有一个日期。所以我认为使用“时间戳”可以做到这一点,但我不知道如何部署它们。描述(名称,名称,风味)应该只写在文件的顶部一次。
最后,我想要这样的东西:
Name Name Flavor
<timestamp>
AAA BBB CCC
ABC BCD CDE
<timestamp>
ACB DHB 123提前感谢您的帮助!
发布于 2018-11-29 18:19:47
如果您使用GNU awk,systime()将会工作,但您可能会将此函数替换为返回所需日期的函数。
awk 'NR==1;FNR==1{print systime(); next}1' file1 file2返回
Name Name Flavor
1543486733
AAA BBB CCC
AAA BBB CCC
1543486733
ACB DHB 123我不知道你想要什么样的日期,所以我用了systime()
编辑
使用上次修改文件的时间:
awk 'NR==1{printf "%s", $0};FNR==1{print ""; system("date -r" FILENAME); next}1' *.csv > ReportsVol.csv返回:
Name Name Flavor
Thu Nov 29 11:11:49 CET 2018
AAA BBB CCC
AAA BBB CCC
Thu Nov 29 11:12:07 CET 2018
ACB DHB 123如果希望日期格式从纪元开始以秒为单位,请使用system("date +%s -r " FILENAME)。
如果不需要空行分隔文件,请删除print "";。
发布于 2018-11-29 18:27:05
你能不能试着跟上。
awk '
FNR==1{
if(++count==1){
print $0 ORS systime()
}
if(count==2){
print systime()
}
next
}
1' Input_file发布于 2018-11-30 10:03:37
awk -v d="$(date)" 'FNR==1{print (NR==1 ? $0 : "") ORS d; next} 1' *.csv根据需要指定date选项。
https://stackoverflow.com/questions/53536236
复制相似问题