我需要合并多个CSV文件中的单个列,同时忽略标题。
文件1:
id,backer_uid,fname,lname
123,uj2uj2,JOHN,SMITH
文件2:
id,backer_uid,fname,lname
124,uj2uh3,BRIAN,DOOLEY
输出:
JOHN
BRIAN
目前,我正在使用:
/*Merge 3rd column from all csv files*/
awk -F "\"*,\"*" '{print $3}’ *.csv >merged.csv
但是如何忽略标题?
答案 0 :(得分:2)
你可以通过在FNR
(每个文件的记录号)上添加一个条件,使用awk,几乎就像你已经完成的那样:
awk -F, 'FNR > 1 {print $3}' *.csv > merged.csv
答案 1 :(得分:1)
使用tail
和cut
:
tail -q -n +2 *.csv | cut -f3 -d, > merged.csv
tail -n +2
打印从第2行开始的所有文件行-q
禁止打印文件名cut -f3 -d,
提取第三个字段,将,
视为分隔符答案 2 :(得分:1)
尝试:如果您只需要阅读2个文件。
awk -F, 'FNR>1{print $(NF-1)}' file[12]
这里我将字段分隔符设置为逗号,然后检查行号是否大于1,然后打印第二个字段。这里要注意的是文件[12]只会读取名为file1和file2的文件,如果你有多个文件则使用文件*。