我想用产品和ID对文件进行排序,并且我会在awk中得到几个文件作为输出。 我使用的命令是用两列对文件进行排序,同时用AWK命令在输出文件上保留标题
awk -F"|" 'NR>1 {print > "INITIATION_V1_"$1"_"$2".csv"}' test1.csv
不过,这并不在每一个输出文件我保持头我。我在谷歌搜索了很多,并尝试了NR==1 ||
和NR==1 ;
,但它不适合我。任何人都可以帮助我解决这个问题?谢谢。
我想用产品和ID对文件进行排序,并且我会在awk中得到几个文件作为输出。 我使用的命令是用两列对文件进行排序,同时用AWK命令在输出文件上保留标题
awk -F"|" 'NR>1 {print > "INITIATION_V1_"$1"_"$2".csv"}' test1.csv
不过,这并不在每一个输出文件我保持头我。我在谷歌搜索了很多,并尝试了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]++
是由输出文件名索引的行计数器,仅插入第一行之前与ORS所附的标题,这将成为为每个分割文件中的标题。
它正是我想要的输出文件。非常感谢你@karakfa!我需要一些时间来消化你给出的代码。欣赏它! –
好逻辑,'++' – Inian
@Inian谢谢你的帮助。你们太棒了,善意帮助。它帮助我学到很多东西。希望在未来向你们学习。保持联系。 –
感谢miltonb编辑我的问题。我是这个领域的新人。你有解决我的问题的想法吗?谢谢。 –
@HENGUnn,提供一个最小示例输入文件和相应的预期输出文件(名称*和*内容)。 –
我想按列1(产品)和列2(ID)进行拆分。例如,因此product = A和ID = 1的所有内容都将放在一个文件中。我想为每个输出文件保留相同的标题。 –