从 csv 中删除顶行然后合并

从 csv 中删除顶行然后合并

我在一个位置有多个类似的 csv 文件。我必须将这些文件合并为一个文件。但问题是我的 csv 文件在标题顶部多了一行。我想删除该行,然后合并 csv。

我知道当顶部没有多余的线时我可以做如下的事情。

cat *UNSTRUCTURED.csv > Merged_UNSTRUCTURED.csv

但挑战是如何删除顶线。此外,所有文件名都将具有类似 UNSTRUCTURED 的模式。

在此输入图像描述

答案1

代替cat,使用:

awk 'FNR>2 || NR==2' ./*UNSTRUCTURED.csv > UNSTRUCTURED-Merged.csv

它会跳过所有文件的前两行(额外的行和标题行),但保留第一个文件的第二行(标题)。

NR是整个输入中的记录数(记录存在线默认情况下) whileFNR是当前文件中的记录号。

删除前 2 行全部文件(导致没有标题的输出),只需使用awk 'FNR>2'or with GNU sed:sed -s 1,2d或 with GNUtail或兼容(包括 ast-open、FreeBSD 和 busybox): tail -qn+3

相关内容