Perl CSV操纵AWK?

Perl CSV操纵AWK?,perl,csv,awk,Perl,Csv,Awk,我有两个CSV文件,一个有很长的参考号列表,另一个是每日订单列表 每天,我需要将参考编号剪切并粘贴到每日订单中。显然,我只剪切订单数量的参考号,因此,例如,如果有20个订单,我需要从另一个文件中获取20个参考号并粘贴到我的订单文件中。我删减了这些数字,这样我们在接下来的几天里就不会再有重复的了 我想自动化这个过程,但我不知道最好的方法。我正在运行windows并使用AWK进行其他csv操作,但我对AWK不是很有经验,也不确定这是否可行,所以我只是想问问是否有人对最佳解决方案有什么想法。正确解析c

我有两个CSV文件,一个有很长的参考号列表,另一个是每日订单列表

每天,我需要将参考编号剪切并粘贴到每日订单中。显然,我只剪切订单数量的参考号,因此,例如,如果有20个订单,我需要从另一个文件中获取20个参考号并粘贴到我的订单文件中。我删减了这些数字,这样我们在接下来的几天里就不会再有重复的了


我想自动化这个过程,但我不知道最好的方法。我正在运行windows并使用AWK进行其他csv操作,但我对AWK不是很有经验,也不确定这是否可行,所以我只是想问问是否有人对最佳解决方案有什么想法。

正确解析csv是一项非常棘手的工作。最困难的是在解析内容中的引号、双引号、逗号、空格等时出错

我建议使用一些经过良好测试的库,而不是重新发明轮子。我认为awk没有,但Perl有:
DBD::CSV

在Windows上,只需安装,默认情况下已安装

然后,使用如下Perl代码检索数据,并在
中转换为其他格式,而
循环:

use DBI;
my $dbh = DBI->connect("dbi:CSV:f_ext=.csv") or die $DBI::errstr;
my $sth = $dbh->prepare("SELECT * FROM mytable"); # access mytable.csv
$sth->execute();
while (my @row = $sth->fetchrow_array()) {
   print "id: $row[0], name: $row[1]\n";
}
# you can also access columns by name, like this:
# while (my $row = $sth->fetchrow_hashref()) {
#     print "id: $row->{id}, name: $row->{name}\n";
# }
$sth->finish();
$dbh->disconnect();

由于您提到有2个输入CSV文件,您甚至可以使用SQL join语句从两个表中同时正确连接获取数据。

您能提供文件的摘要吗?mvp给了您一个很好的答案。除非你运气好,否则你必须自己在awk中编写所有CSV解析代码。Perl已经有了一个CSV库,它与awk非常相似,因此您所掌握的任何awk技能都应该进行翻译。如果您感到困惑,请使用a2p,这是perl附带的一个实用程序,可以将awk转换为perl。听起来你想在awk中做的事情很琐碎,但如果你确实需要对所有样式的CSV文件进行全面的解析,我非常怀疑,你可以从下载并使用Stinsons CSV解析器。