使用AWK命令将文件按两列排序,同时在输出文件上保留标题

时间:2017-02-17 02:00:19

标签: sorting awk header

我想用产品和ID对文件进行排序,我将在awk中输出几个文件作为输出。 我正在使用的命令是

awk -F"|" 'NR>1 {print > "INITIATION_V1_"$1"_"$2".csv"}' test1.csv 

但它在我得到的每个输出文件中都没有为我保留标题。我在谷歌搜索了很多,并尝试使用NR==1 ||NR==1 ;,但它对我不起作用。任何人都可以帮我解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:1)

awk -F\| 'NR==1 {h=$0; next} 
                {file="INITIATION_V1_"$1"_"$2".csv";  
                 print (a[file]++?"":h ORS) $0 > file}' test1.csv

a[file]++是由输出文件名索引的行计数器,只在第一行之前插入附加了ORS的标题,这将成为每个拆分文件的标题。