awk如何将文件转换为libsvm格式?

awk如何将文件转换为libsvm格式?,awk,text-files,Awk,Text Files,我有一个文件,其前两行如下所示: "price" "spec.long" "spec.short" "com.long" "com.short" "small.long" "small.short" "1" 10.8 10270 -4069 57894 -76045 58818 -46868 我想去掉第一行,去掉引号中的整列,去掉引号,结果如下所示: 10.8 1:10270 2:-4069 3:57894 4:-76045 5:58818 6:-46868 我正在考虑是否值得学习awk来完

我有一个文件,其前两行如下所示:

"price" "spec.long" "spec.short" "com.long" "com.short" "small.long" "small.short"
"1" 10.8 10270 -4069 57894 -76045 58818 -46868
我想去掉第一行,去掉引号中的整列,去掉引号,结果如下所示:

10.8 1:10270 2:-4069 3:57894 4:-76045 5:58818 6:-46868

我正在考虑是否值得学习awk来完成类似的任务。或者我的时间最好用perl、ruby或python来解决这个问题

去掉第一行最简单的方法就是把它涂掉。然后,假设整个文件如下所示,其余部分可以硬编码


grep-v价格文件| awk'{print$2“1:$3”2:$4“3:$5”4:$6“5:$7”6:$8}'

摆脱第一行的最简单方法就是把它放出来。然后,假设整个文件如下所示,其余部分可以硬编码


grep-v价格文件| awk'{print$2“1:$3”2:$4“3:$5”4:$6“5:$7”6:$8}
无需硬编码索引:

awk 'NR>1 {
  printf("%s ",$2)
  for (i=3; i<=NF; i++) printf("%d:%s ", i-2, $i)
  print ""
}' filename
awk'NR>1{
printf(“%s”,2美元)

对于(i=3;i无需硬编码索引:

awk 'NR>1 {
  printf("%s ",$2)
  for (i=3; i<=NF; i++) printf("%d:%s ", i-2, $i)
  print ""
}' filename
awk'NR>1{
printf(“%s”,2美元)

对于(i=3;我推荐。即使是我知道的一点点awk(大部分在这里展示)都是非常有用的,其他shell utils也是如此。非常推荐。即使是我知道的一点点awk(大部分在这里展示)和其他shell util一样,它是非常有用的。感谢通用版本。谢谢。感谢通用版本。谢谢。