linux - 使用 awk 分割数据但缺少列名

标签 linux unix awk multiple-columns filesplitting

我设法按照自己的意愿获取此命令,但为什么我的列名称被排除在外?

这是我的命令

awk \
  -v DATE="$(date +"%d%m%Y")" \
  -F"," \
  'BEGIN{OFS=","} NR>1{ gsub(/"/,"",$1); print > "Assignment_"$1"_"DATE".csv"}' \
  Test_01012020.CSV

在我的原始文件中,test_01012020.csv包含列:名称、类(class)、年龄等,但在我分割文件后Assignment_"$1"_"DATE".csv"我只得到例如值:FARAH、CLASS A、24等,但在新文件中不包含列名称。我需要列名称作为原始文件而不是分割文件中的标题.有人可以帮助我吗?

最佳答案

@FARAH:尝试:

awk \
  -v DATE="$(date +"%d%m%Y")" \
  -F"," \
  'BEGIN{OFS=","} NR==1{print > "Assignment_"$1"_"DATE".csv"}} NR>1{ gsub(/"/,"",$1); print > "Assignment_"$1"_"DATE".csv"}' \
  Test_01012020.CSV

显然它不会打印标题,因为 NR>1 表示保留第一行,请尝试上面的操作,您也可以根据需要更改标题。

关于linux - 使用 awk 分割数据但缺少列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356742/

相关文章:

linux - WHM - 控制台不工作

json - 如何在 Linux 上使用 shell 脚本解析 JSON?

c - 程序在 FD_SET 宏 (select()) 中挂起

linux - bash 脚本中双引号的意外行为

ruby - 是否有命令行选项以某种模式在 emacs 中打开文件?

linux - 转换格式 HH :MM:SS to seconds in a column with AWK

c++ - Linux API(如 MSDN)的引用?

android - 在 Android 4.2.2 上安装 libhoudini(ARM 仿真)。模拟器

linux - 在 Linux 上将一个文件的内容插入到另一个文件

linux - 如何从复杂的文件中获取字段