それぞれ 33 行の長さのレコードのフラット ファイルがあります。このファイルをテンプレートの仕様に合わせてフォーマットする必要があります。テンプレートは DOS 形式ですが、ソース ファイルは NIX 形式です。テンプレートには、遵守する必要がある特定のインデントと間隔があります。私はいくつかのオプションを考えました:
- 従来の nix ツールを使用した BASH: sed、awk、grep など...
- テンプレート ツールキットを使用した BASH
- Perl eith テンプレート ツールキット
- パール
これらは、私がよく知っている順です。サンプル ソース レコード (NIX 形式) を次に示します。スペースを節約するために改行の数を減らしました (通常は 33 行)。
JACKSON HOLE SANITARIUM AND REPTILE ZOO
45 GREASY HOLLER LN
JACKSON HOLE, AK 99999
Change Service Requested
BUBBA HOTEP
3 DELIVERANCE RD
MINNEAPOLIS, MN 99998
BUBBA HOTEP 09090909090909
You have a hold available for pickup as of 2012-01-04:
Title: Banjo for Fun and Profit
Author: Williams, Billy Dee
Price: $10
テンプレートは次のとおりです (DOS 形式 -- 削減された行数 - 通常は 66 行):
<%BRANCH-NAME%>
<%BRANCH-ADDR%>
<%BRANCH-CTY%>
<%CUST-NAME%> <%BARCODE%>
You have a hold available for pickup as of <%DATE%>:
Title: <%TITLE%>
Author: <%AUTHOR%>
Price: <%PRICE%>
<%CUST-NAME%>
<%CUST-ADDR%>
<%CUST-CTY%>
end of file
実際には、各レコードの最後に「ファイルの終わり」と表示されます。
考え?私は物事を過度に複雑にする傾向があります。
更新2
理解した。
私の答えは以下です。遠慮なく改善を提案してください。