我正在尝试编写一个编译乳胶源的 shell 脚本。我希望获取包含在以下命令中的参考书目文件的名称:
\参考书目{文件名}
我需要将“文件名”保存到 shell 变量中。我对此的解决方案(在 tcsh 中)非常尴尬:
设置传记=grep -v -E "[[:blank:]]*%[[:blank:]]*" poltheory.tex | grep -E "\\bibliography{[A-Za-z0-9_\.]*}" | tail -1 | sed 's/\\bibliography//' | tr -d { | tr -d } | awk '{print $1}'
这分解为:
- 不要在乳胶源中显示注释行
- 抓住那些包含有效书目标签的行
- 只使用最后一个(如果由于某种原因定义了多个)
- 摆脱花括号
- 将剩下的内容设置为 shell 变量。
当然,我忽略了一种优雅的方法。你能让我惊叹吗?我已经有一个工作命令,所以这仅仅是以美容和外壳魔法的名义。