我正在使用 GNU Recutils 以纯文本格式创建 Unix 数据库。使用以下脚本,我得到一个选定类别的书籍列表:
recsel -t book -e "Category='$1'" "$RECFILE" | recfmt -f bycat.templ
输出如下:
1: Book title
2: Book title
55: Book title
128: Book title
该文件bycat.templ
具有以下内容:
{{Id}}: {{Title}} (read: {{Read}})
根据手册,似乎无法从该文件中定义到右侧的对齐方式。
所以我试图找到一个 Unix 解决方案,可能使用printf
, awk
,xargs
或者for
每行都有一个 bucle。我不知道如何实现这一点。
所需的输出:
1: Book title
2: Book title
55: Book title
128: Book title
给你:
文件:
book.awk
执行:
输出:
在每个 Unix 机器上的任何 shell 中使用任何 awk 的 2-pass 方法,无论 ID 中的数字有多少,也无论标题中可以出现哪些字符(包括
:
):