提取文件第一行的一部分

提取文件第一行的一部分

我正在尝试在 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

관련 정보