我有一个记录的平面文件,每个 33 行长。我需要将此文件格式化为模板中的规范。模板是 DOS 格式,而源文件是 NIX 格式。模板具有必须遵守的特定缩进和间距。我想到了几个选择:
- 带有经典 nix 工具的 BASH:sed、awk、grep 等...
- 带有模板工具包的 BASH
- Perle eith 模板工具包
- Perl
这些是按照我的熟悉程度排序的。这是一个示例源记录(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
弄清楚了。
我的答案如下。随时提出改进建议。