2010-04-08 119 views
0

每月創建4或5個文本文件。文件中的數據被拉入MS Access並用於郵件合併。使用for或while循環

每個文件都包含一個標題。這是一個例子: HEADER | 0000000130 | 0000527350 | 0000171250 | 0000058000 | 0000756600 | 0000814753 | 0000819455 | 100106

的第二字段是包含在文件中的記錄(不包括標題行)的數目。最後一個字段是yymmdd格式的日期。

使用GAWK(Windows版),我已經做了好與重排/修改數據,寫這一切到一個新的文件導入到Access除了以下。

我正在嘗試爲每條記錄創建一個唯一的ID號。身份證號碼的格式爲1mmddyyXXXX,其中XXXX是一個數字,填充了前導零。使用上面的頭,輸出文件中的第一條記錄將獲得ID號碼10106100001和最後一條記錄將得到ID 10106100130.

我試過把第二個字段放到變量中,重新排列最後一個標題字段轉換爲所需的日期格式,然後用「for」語句循環來追加ID的XXXX部分,然後用printf輸出它,但到目前爲止,我已經完全垃圾了。

感謝您的幫助! 加里

回答

2

調用AWK(1)選項 「-F |」並使用以下語句來設置標識符: id = sprintf(「1%02d%02d%02d%04d」,substr($ 9,3,2),substr($ 9,5,2),substr($ 9,1 ,2),NR)

+1

'NR - 1',因爲您不計算標題記錄。 – 2010-04-08 20:19:35

+0

謝謝你們兩位!像往常一樣,我讓解決方案比現在更困難。 – Gary 2010-04-09 00:48:24