Bash 转换文件



我有一个.csv文件,我想通过 bash 脚本将其转换为.txt文件文件看起来像.csv文件

我想获取此格式的 txt 文件

velocity
List<vector>
300 // number of point
(
(U0 U1 U2)
(U0 U1 U2)
...
...
...
)

非常感谢您的帮助

这有点丑,但我认为它可以解决问题:

 wc -l < Inlet.csv  | cat - Inlet.csv | awk  -F, 'BEGIN{printf "velocitynList<vector>n"} NR==1{printf "%sn(n",$1} NR>2{print "("$1 $2 $3")"}END{print ")"}'

这将执行以下操作:

  1. wc获取记录计数并将其通过管道传输到
  2. cat,它将数字与文件连接起来。数字优先并将其通过管道连接到
  3. 用逗号-F,分隔的 awk
  4. 打印出文件顶部的垃圾'BEGIN{printf "velocitynList<vector>n"}
  5. 如果它在第一条记录(计数(上NR==1则打印它,然后是换行符,然后是参数,然后是另一个换行符{printf "%sn(n",$1}
  6. 如果我们经过标题(记录大于 2(NR>2那么我们打印出前三个字段,周围是参数{print "("$1 $2 $3")"}
  7. 最后,在处理结束时,我们打印出最终的参数,以关闭我们在步骤 5 中的记录 1 时打印出来的参数END{print ")"}

最新更新