我正在尝试向分割文件添加标题,但是使用此代码,标题会出现在每隔一行:
awk -F, '{print "eid,devicetype,meterid,lat,lng" > $7"-"$6".csv"}{print $1",", $2",", $3",", $4",", $5"," >> $7"-"$6".csv"}' path/filename
awk代码本身可以工作但我需要在文件中应用一个标头。该脚本根据第6列和第6列中的值拆分文件。 7以及使用这些值命名结束文件。然后它删除第6列和第6列。 7它只将第1-5列放在输出文件中。这是在从PowerCenter运行的shell脚本中的Unix上。 我相信对于其他更有经验的人来说,这可能很简单。
答案 0 :(得分:1)
您可以使用:
awk -F, '!a[$7,$6]++{print "eid,devicetype,meterid,lat,lng" > $7 "-" $6 ".csv"}
{print $1,$2,$3,$4,$5 > $7 "-" $6 ".csv"}' OFS=, /path/filename.csv
NR==1
将确保为第一条记录打印标题。
答案 1 :(得分:1)
awk '
BEGIN { FS=OFS="," }
{ fname = $7 "-" $6 ".csv" }
!seen[fname]++ { print "eid", "devicetype", "meterid", "lat, "lng" > fname}
{ print $1, $2, $3, $4, $5 > fname }
' path/filename