使用for或while循环

时间:2010-04-08 18:59:13

标签: awk

每月创建4或5个文本文件。文件中的数据被拉入MS Access并在mailmerge中使用。

每个文件都包含一个标题。这是一个例子: HEADER | 0000000130 | 0000527350 | 0000171250 | 0000058000 | 0000756600 | 0000814753 | 0000819455 | 100106

第二个字段是文件中包含的记录数(标题行除外)。最后一个字段是yymmdd形式的日期。

使用gawk(对于Windows),我已经完成了重新排列/修改数据并将其全部写入新文件以便导入Access的情况,但以下情况除外。

我正在尝试为每条记录创建一个唯一的ID号。 ID号的格式为1mmddyyXXXX,其中XXXX是一个数字,用前导零填充。使用上面的标题,输出文件中的第一条记录将获得ID号10106100001,最后一条记录将获得ID 10106100130.

我已经尝试将标题中的第二个字段放入变量中,将最后一个标题字段重新排列为所需的日期格式,然后使用“for”语句循环以附加ID的XXXX部分,然后将其全部输出printf但到目前为止,我已经完全垃圾了。

感谢您的帮助! 加里

1 个答案:

答案 0 :(得分:2)

使用选项“-F |”调用awk(1)并使用以下语句来设置标识符:     id = sprintf(“1%02d%02d%02d%04d”,substr($ 9,3,2),substr($ 9,5,2),substr($ 9,1,2),NR)