【问题标题】:Using for or while loops使用 for 或 while 循环
【发布时间】:2010-04-09 03:15:04
【问题描述】:

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

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

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

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

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

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

感谢您的帮助! 加里

【问题讨论】:

    标签: awk


    【解决方案1】:

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

    【讨论】:

    • NR - 1 因为你没有计算标题记录。
    • 谢谢你们!像往常一样,我把解决方案弄得比原来更难。
    猜你喜欢
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2013-07-21
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    相关资源
    最近更新 更多