【发布时间】:2015-01-11 10:16:06
【问题描述】:
我有一个包含 321 个条目的文件,这是标题:
- BILLING_NAME
- CONSUMER_ID
- BILLING_ADDRESS1
- BILLING_CITY
- BILLING_STATE
- BILLING_ZIP
- BANK_ROUTING_NUMBER
- ACH_ACCOUNT_NUMBER
我想在每个条目周围插入 xml 标签:
<billingName>Stackoverflow</billingname> <consumerID>4454</consumerID> etc
一直通过这个文件。上面的这些字段和其他一些未提及的字段将用于发出 curl 请求以通过 API 在文件中添加帐户,因此在我拥有所有必要的标签后,我可以创建顺序 xml 请求。
我已经能够用 awk 分离出上面的所有数据并制作 8 个不同的文件,但我不知道如何将它们连接在一起。
CSV 中的字段分隔符是一个逗号 (,),不幸的是,cut 的工作并不完美,因此我可能需要手动处理一些记录。
我很确定这可以用 awk 完成,但我不完全知道如何循环所有记录。
感谢您的帮助!
编辑
最后一次修改将使所有这些工作完美。
awk -F, '{
filename = $2
$1 = "<api-request>";
$2 = "<verification>";
$3 = "<merchantId>11</merchantId>";
$4 = "<merchantKey>key</merchantKey>";
$5 = "</verification>";
$6 = "<command>add-ach-onfile</command>";
$7 = "<request>";
$8 = "<billingName>"$8"</billingName>";
$9 = "<customerId>"$9"</customerId>";
$10 = "<billingAddress1>"$10"</billingAddress1>";
$11 = "<billingCity>"$11"</billingCity>";
$12 = "<billingState>"$12"</billingState>";
$13 = "<billingZip>"$13"</billingZip>";
$14 = "<bankRoutingNumber>"$14"</bankRoutingNumber>";
$15 = "<achAccountNumber>"$15"</achAccountNumber>";
$16 = "</request>";
$17 = "</api-request>";
print > filename
}' 2export.csv
所以我知道 8-15 美元是自己工作的,但我想添加 1-7 美元、16 美元和 17 美元,以便完成 api 请求。
<api-request> <verification> <merchantId>11</merchantId> <merchantKey>key</merchantKey> </verification> <command>add-ach-onfile</command> <request> <billingName>016114849</billingName> <customerId></customerId> <billingAddress1></billingAddress1> <billingCity></billingCity> <billingState></billingState> <billingZip></billingZip> <bankRoutingNumber></bankRoutingNumber> <achAccountNumber></achAccountNumber> </request> </api-request>
以上显示新标签有效,但现有标签不包含数据。我很确定我只需要更改 $8-15 的内容,让它从我的 2export.csv 文件中读取,而不是从标准输入中读取,但我的所有尝试都不起作用。
【问题讨论】:
-
stackover flow,4544,1000 W Any Street,Salt Lake City,UT,84101,122874015,874stack exchange,254870,8080 N Broadford Avenue,Santa Cruz,CA,95065,825643792,9044564351298数据可以是任何你喜欢的。