![提取文件第一行的一部分](https://linux22.com/image/42950/%E6%8F%90%E5%8F%96%E6%96%87%E4%BB%B6%E7%AC%AC%E4%B8%80%E8%A1%8C%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86.png)
我正在尝试在 Gedit3 中配置一些外部命令,用于编译 LaTeX 文件。除以下情况外,一切正常。我有一个 LaTeX 文档,由许多部分组成。每个文件开头为
% mainfile: name_of_main_file.tex
因此,在 bash 中,我尝试提取每个文件的第一行,然后从该行提取name_of_main_file.tex
并编译它。所以问题是:提取name_of_main_file.tex
、将其加载到变量(例如 )中的最快方法是什么$MAINFILE
,以便我可以对其进行编译?
答案1
#!/bin/bash
for file in *.tex; do
read _ _ mainfile < "$file"
echo "$file : $mainfile"
done
笔记:我假设您要从中提取第一行的文件是.tex
文件,如果不是这种情况,则*.tex
相应地更改部分
答案2
这应该可以完成工作(未经测试):
sed -sn 1p *.tex | cut -f2 -d: | xargs latex