2010-03-10 1 views
2

我的公司有一個問題:我們懷疑我們從我們的應用服務提供商那裏收到的NACHA files我們用來從我們的客戶那裏提取款項是錯誤的。如何使用awk解析固定寬度(NACHA)文件格式?

我們擁有所有的ACH協議和合法的mumbo-jumbo,所以這不是我們使用ACH網絡時的問題,而且我們也沒有收到銀行的消息說事情出錯了,所以我們懷疑當從銷售信息構建文件時,它缺少一些我們仍然由我們的服務提供商收取的交易。

我的任務:需要幾個月的時間價值的NACHA文件和破譯他們找出從每個客戶得出什麼沉積到我們的帳戶,然後把它們比作銷售數據,銀行對賬單等信息通過Access/Excel。使用MySQL作爲數據。

在這一點上,awk(或類似的Linux命令行工具)是我有的工具;我不熟練'實際'的編程工具或練習,我更像是系統和數據庫管理員。我不害怕讓自己的手變髒,我只是沒有很多編程經驗,比如說閱讀C#這類的東西。

我的主要困難在於使用實際的NACHA文件格式:它的寬度爲94個字符,字段僅由其位置確定,沒有分隔符。使用awk(以我以前的經驗)依賴於字段分隔符變量,它是空白區域或其他任何東西......但我一直沒有成功使用它通過位置梳理字段。由於每個文件中的記錄類型不同,我需要使用類似awk的東西,文件中有5種不同的線型:1,5,6,8和9.類型1和9是外部組,帶有標題信息,5和8是批頭線。類型6線是細節。我最初的計劃是將標題信息讀入變量,然後在每行上覆制它,基本上將它解規格化爲一個大表(或CSV,在此期間),每個單獨事務記錄一條記錄,與所有標題信息相關聯批處理和一天,所以:

[transaction data1, data2],[batch data1, data2],[file info1, info2, etc] 
[transaction data1, data2],[batch data1, data2],[file info1, info2, etc] 
[transaction data1, data2],[batch data1, data2],[file info1, info2, etc] 

我贊成建立一個工具,可以做到這一點在連續的基礎向前發展,因爲它會成爲數據監測,我們做每日/每週的基礎上的零件。

那麼,如何使用awk或類似的工具來反規範化NACHA文件?如果工作有更好的工具,我很樂意聽到它。不幸的是,我在網上搜索中找不到任何東西。

+0

有趣的是,您提供的NACHA格式鏈接顯然是可以用於您需要執行的任務的工具。你試過了嗎? – PhiLho 2010-03-10 17:35:19

+0

我知道。我引用: Parse-O-Matic for Business作爲一次性固定許可費出售,並且每年都有一個服務更新組件。 一次性單位牌照售價爲1,995美元。00,包括一年的升級和維護版本。 需要幾個小時才能達到$ 1995.00。 – atroon 2010-03-10 17:51:03

+0

啊,我明白了,我看到他們有一個免費版,但並不是說它只用於非商業,非盈利的用途...... :-) – PhiLho 2010-03-11 16:55:30

回答

2

如果您查看gawk信息文件(info gawk),則會出現一個名爲「3.6讀取固定寬度數據」的部分。如果您使用gawk,這可能會提供您需要的信息。

從該文件:

輸入記錄的分裂成固定寬度的字段被指定通過分配容納空間分隔的數字字符串 到 內置變量`FIELDWIDTHS」。

+0

非常棒!非常感謝您指出這一點;我已經得到如此包裝在(不幸過時的)awk參考中,並且在線查看腳本,我從未檢查過信息頁。 – atroon 2010-03-10 19:13:10

+0

它的工作原理!非常感謝你。 – atroon 2010-03-11 13:56:08