【发布时间】:2021-04-29 03:28:22
【问题描述】:
我有一堆以下两种格式之一的 CSV 文件。
文件type-a.csv:
name,age,breed,vip
jack,10,golden,no
mary,3,poodle,yes
文件type-b.csv:
name,age,membership start,membership end,breed,vip
hazel,2,2018,2019,pit bull,yes
pot roast,4,2020,2021,lab,yes
我有两个问题。首先,我尝试使用 awk 将这些文件重新格式化为一种通用格式。像这样:
age,name,type,breed
10,jack,A,golden
3,mary,A,poodle
2,hazel,B,pit bull
4,pot roast,B,lab
这是我现在拥有的代码。我使用find 来查找所有满足命名约定的 CSV 文件。但是,我不确定如何处理awk。
#find all csv files
for f in $(find $dir -iname 'type-*.csv' -type f)
do
awk '
BEGIN { Name=""; Type=""; Age=0; Breed=""; }
done
第二个问题是,这些文件都命名为type-*.csv。例如,type-a.csv、type-b.csv 等。我想将这些类型作为第三个 type 列包含到输出 CSV 文件中,但我不确定如何。
【问题讨论】:
-
你有几个输入文件,你想要一个输出文件,对吗?
-
是的,我想要一个输出文件。 @格伦杰克曼
-
一旦您得到答案,您编辑问题的范围就会受到限制。您已经大大改变了问题,使答案无效,这是不允许的。如果绝对必要,您可以通过添加额外信息来修改问题,但您不应该删除问题的突出部分,因此不再清楚为什么答案是这样写的他们是。我已将问题回滚到原始版本,以便答案仍然相关。您确实提出了对答案的编辑 - 这不是一个好主意。得到答案后,不要理会这个问题。