![一个标准的 UN*X 工具来在 filecontents 环境中打包一堆文件?](https://linux22.com/image/333428/%E4%B8%80%E4%B8%AA%E6%A0%87%E5%87%86%E7%9A%84%20UN*X%20%E5%B7%A5%E5%85%B7%E6%9D%A5%E5%9C%A8%20filecontents%20%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%89%93%E5%8C%85%E4%B8%80%E5%A0%86%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我正在寻找类似的东西:
filecontents *.sty | cat - main.tex > newmain.tex
编写一个脚本来迭代其参数并将它们包装在环境中应该很容易filecontents
。我想知道是否有这样的标准工具。
这是一个可以完成这个工作的简单脚本:
#!/bin/sh -f
for f in $* ; do
echo \\\\begin{filecontents}{$f}
cat $f
echo \\\\end{filecontents}
done
如果没有这样的标准工具,您希望在其中看到什么?
答案1
这是一个稍微改进的脚本:
#!/bin/bash -f
function bundle {
echo "\\begin{filecontents*}{$1} % Begin: '$1' $2"
cat $1
echo "\\end{filecontents*} % End: '$1' $2"
}
me=`basename "$0"`
case $# in
0)
echo "Usage: $me file(s)"
;;
1)
bundle $1
;;
*)
i=1
echo "% BEGIN: bundle $# files ($*) `date`"
for f in $*; do
bundle $f "\#$i/$#: `date`"
[ $i -ge $# ] || echo
let i=$i+1
done
echo "% END: bundle $# files ($*) `date`"
;;
esac
改进包括:
- 生成更详细的 LaTeX 注释,包括日期、文件数量等。
- 使用
filecontents*
环境
如果有人对变体感兴趣,请告诉我。也许有一天我会把它做成一个更标准化的工具。即使不是,满足人们真正需要的东西也很好。