我有一个记录的平面文件,每个记录共 33 行。我需要将此文件格式化成一个模板中的规格。该模板是 DOS 格式,而源文件是 NIX 格式。模板具有特定的缩进和间距,必须遵守。我想了几个选项:
这里是模板(DOS格式 - 压缩了行数 - 通常为66行):
- 使用经典 nix 工具 BASH: sed、awk、grep 等...
- 使用模板工具包的 BASH
- 使用模板工具包的 Perl
- Perl
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
找到解决方法了。
我的答案如下。欢迎提出改进意见。