【发布时间】:2020-01-25 00:50:37
【问题描述】:
创建了两个数组。我想打印数组 1 的第一条记录,然后打印数组 2 中与数组一个主键匹配的所有记录。主键是所有数组中的第三列。我也有一个列名。类似于交易报告。
数组 1
content1, content2, primaryKey1, content1, content1
content2, content2, primaryKey2, content2, content2
content3, content3, primaryKey3, content3, content3
数组 2
data1, data2, primaryKey1, data1, data1
data1, data2, primaryKey1, data1, data1
data1, data2, primaryKey1, data1, data1
data3, data3, primaryKey3, data3, data3
data3, data3, primaryKey3, data3, data3
data3, data3, primaryKey3, data3, data3
datat2, data2, primaryKey2, data2, data2
datat2, data2, primaryKey2, data2, data2
输出
**content1, content2, primaryKey1, content1, content1**
data1, data2, primaryKey1, data1, data1
data1, data2, primaryKey1, data1, data1
data1, data2, primaryKey1, data1, data1
**content2, content2, primaryKey2, content2, content2**
datat2, data2, primaryKey2, data2, data2
datat2, data2, primaryKey2, data2, data2
**content3, content3, primaryKey3, content3, content3**
data3, data3, primaryKey3, data3, data3
data3, data3, primaryKey3, data3, data3
data3, data3, primaryKey3, data3, data3
这是我目前所拥有的,但我不知道如何匹配主键
{
for (i in Array1)
print Array1[i] > "output.csv";
{for (k in Array2)
printArray2[k] > "output.csv";
}
}
这是我加载数组的方式。 Auth_num 是主键。该文件未排序,但我可以先执行排序命令。我提供的数组只是样本。数据不准确,但结构和布局相似。数组以逗号分隔。所以我的目标是列出一个帐户下的所有交易。例如,数组 1 的第一行将是第一个帐户,我想列出与共享 primarykey1 值匹配的数组中的所有对应行。
while (getline < "'"$Authorization"'")
{
split($0,ft,",");
Auth_num=ft[4];
request_date=ft[5];
status=ft[8];
state=ft[9];
Authorization_Arr[Auth_num]=Auth_header","Auth_num","request_date","status","state;
}
Updated code but no luck with it
for (key in Authorization_Arr)
{ # now print the data for each key
print "**"Authorization_Arr[key]"**"
for (i in LineItem_Arr[key]) {
print LineItem_Arr[i]
}
}
我如何填充事务数组
while (getline
split($0,li,",");
LI_Auth_num=li[4];
line_item_number=li[6];
requested_from_date=li[7];
requested_to_date=li[8];
type=li[9];
requested_date=li[10];
determination_due_date=li[12];
service_type=li[13];
status=li[14];
level_of_urgency=li[15];
urgency_requested_by=li[16];
primary_procedure=li[18];
code=li[19];
applied_eligibility=li[20];
servicing_provider=li[21];
provider_id=li[22];
npi=li[23];
in_network=li[24];
servicing_provider_phone=li[26];
place_of_service=li[28];
comments=li[29];
method=li[30];
out_of_network_reason=li[31];
preliminary_requested_units=li[33];
request_source=li[34];
determined_from_date=li[35];
determined_to_date=li[36];
determination=li[37];
requested_units=li[39];
recommended_units=li[40];
determined_units=li[41];
type_of_decision=li[42];
LineItem_Arr[count]=LI_Auth_num","line_item_number","requested_from_date","type","requested_date","determination_due_date","service_type","status","level_of_urgency","urgency_requested_by","primary_procedure","code","applied_eligibility","servicing_provider","provider_id","npi","in_network","servicing_provider_phone","place_of_service","comments","method","out_of_network_reason","preliminary_requested_units","request_source","determined_from_date","determined_to_date","determination","requested_units","recommended_units","determined_units","type_of_decision;
}
【问题讨论】:
-
没有
bash awk这样的东西。bash是一个 shell,可以从中调用各种命令(例如 sed、grep、awk)。awk是一个可以从 bash 或各种其他 shell 或操作系统(例如 UNIX bash、UNIX ksh、Windows)调用的命令。您是在询问 bash 数组或 awk 数组还是其他什么?还请像您的代码一样将您的示例输入/输出缩进 4 个空格,以便它清晰易读。 -
感谢 Ed 的解释。我正在使用 awk 数组。
-
在您的代码中显示您是如何填充数组的,而不是仅仅列出数组内容,因为根据您的问题和
The primary key is the third column in all arrays中的值行,您的数组是如何填充的并不清楚。跨度> -
记录是否按主键排序?
-
你的问题比它应该的要混乱得多。您谈论 2 个数组并显示一些数据,告诉我们第 3 列是关键,然后说它实际上是第 4 列,提供访问 Array1 和 Array2 的代码,然后显示更多仅填充 1 个数组 Authorization_Arr 的代码,并使用不'在您发布的代码中的其他地方不存在这样做,等等。请发布一个清晰、简单、简洁、可测试的示例,其中包含示例输入文件、预期输出和用于填充数组的可执行代码.