用两个列对文件进行排序,同时使用AWK命令保留输出文件上的标头



我想对产品和ID进行对文件进行排序,我会在尴尬范围内将几个文件作为输出。我正在使用的命令是

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

,但在我收到的每个输出文件中,它并不能为我保留标题。我在Google中进行了很多搜索,并尝试使用NR==1 ||NR==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]++是由输出文件名索引的行计数器,仅在第一行之前插入附加的标题,这将成为每个拆分文件的标题。

最新更新