使用Shell脚本从另一个CSV中的特定列创建CSV

安德鲁克斯

我有一个包含数千行的CSV文件,并且需要使用该文件中的某些列来创建另一个CSV文件,以用于导入数据库。

我的shell脚本再也不见了,有没有人可以帮助我指出正确的方向?

我有一个bash脚本来读取源文件,但是当我尝试将列打印到一个新文件时,它根本无法工作。

while IFS=, read symbol tr_ven tr_date sec_type sec_name name
do
    echo "$name,$name,$symbol" >> output.csv
done < test.csv

上面是我的代码。在原始文件的6列中,我想使用“ column6,column6,collumn1”构建CSV

测试CSV文件是这样的:

Symbol,Trading Venue,Trading Date,Security Type,Security Name,Company Name
AAAIF,Grey Market,22/01/2015,Fund,,Alternative Investment Trust
AAALF,Grey Market,22/01/2015,Ordinary Shares,,Aareal Bank AG
AAARF,Grey Market,22/01/2015,Ordinary Shares,,Aluar Aluminio Argentino S.A.I.C.

我的脚本在做什么错?或者,是否有一种更简单,更快捷的方法?

编辑

这些是真正的标题:

Symbol,US Trading Venue,Trading Date,OTC Tier,Caveat Emptor,Security Type,Security Class,Security Name,REG_SHO,Rule_3210,Country of Domicile,Company Name

我正在尝试获取最后一列,即数字12,但它总是空白。

fedorqui'停止伤害'

该代码段对我来说看起来不错,并且工作正常,也许您的文件中包含一些奇怪的字符,或者它来自DOS环境(用于dos2unix“清理”它!)。同样,您可以利用read -r来防止带有反斜杠的奇怪行为。

但是让我们看看如何awk更快地解决这个问题:

awk 'BEGIN{FS=OFS=","} {print $6,$6,$1}' test.csv >> output.csv

说明

  • BEGIN{FS=OFS=","}这会将输入和输出字段分隔符设置为逗号。或者,你可以说-F=","-F,或者把它作为一个变量-v FS=","同样适用于OFS
  • {print $6,$6,$1}打印第六个字段两次,然后打印第一个字段。请注意,使用时print,您输入的每个逗号分隔的参数都将使用OFS先前设置的进行打印在这里,以逗号分隔。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个csv文件添加列

从另一个创建CSV文件

使用CSV从另一个表的B列获取表A列中的值

如何从另一个Shell脚本运行一个Shell脚本,该脚本从CSV文件中读取第一个Shell脚本名称

使用熊猫确定一个CSV文件中的值是否在另一个CSV文件中丢失

如何从另一个csv文件添加列

python脚本从另一个csv更新一个csv中的现有列值

如何从CSV中的括号中拆分文本,并使用它创建另一个列

简单的PowerShell脚本循环遍历1个CSV文件,以从另一个文件创建新的CSV文件

将一个.csv中的列添加到另一个.csv文件中

通过删除PERL中的某些列,从另一个CSV文件创建一个CSV文件

使用脚本中的变量将Shell脚本更改为另一个目录

如何使用python将某些csv文件列复制到另一个csv文件中?

从csv文件读取特定的列,然后使用python写入另一个CSV

快速shell(bash + awk)脚本使用另一个命令的输出提取列

在Shell脚本中调用另一个程序并使用返回的数据

Shell脚本可仅从.csv文件的特定列中过滤日期,并将输出保存在另一个csv文件中

使用 spark 中的另一个 csv 文件更新 csv 文件

在一个脚本中创建变量并在另一个脚本中使用。jQuery/HTML/JS

使用存储在另一个文件中的参数执行 shell 脚本

使用一个 csv 中不存在于另一个 csv 中的行创建第三个 csv

读取,更新然后在 java 中创建另一个 csv 文件

复制 CSV 文件的一整列并使用 shell 脚本将其添加到另一个文件

使用另一个 csv 从 csv 中删除类似的字符串

使用 Shell 脚本控制另一个程序

仅将一个 CSV 文件中的两列更新到另一个 CSV 文件

使用 Shell 脚本中的变量作为另一个命令的输入

使用 python 将现有 csv 文件中的列插入另一个 csv 文件

在另一个 csv 文件中搜索一个 CSV 文件并更新第一个 csv 中的列值