从 .txt 文件中读取数字并替换 .tex 文件中的字符串

read number from .txt file and replace string in .tex file

我有一个包含以下内容的文本文件 aaaa = 1000

我想用从文本文件中得到的 1000 替换 LaTeX 文件中的 bbbb

我尝试了以下代码但没有成功。

设置motor_loc=grep -i 'aaaa' motor.txt | awk '{print }'

sed -i 's/bbbb/$motor_loc/' for_pdf.tex> for_pdf.tex.tmp

此时bbbb变为$motor_loc

然后,当我尝试使用以下行创建 pdf 时,出现错误。

pdflatex for_pdf.tex

如何将 bbbb 更改为 1000(从文本文件读取的值)而不是 $motor_loc 或字符串。

仅供参考,我正在使用 Cygwin 和 Miktex,并将尝试 运行 在 Raspberry Pi 2.

中使用此代码

提前致谢。

sed 的参数中的单引号使您的变量无法扩展,因此从单引号改为双引号

user@thoth:~$ FOO=ABC
user@thoth:~$ echo $FOO
ABC
user@thoth:~$ echo "$FOO"
ABC
user@thoth:~$ echo '$FOO'
$FOO

另一种也很有用的引号是反引号,它将命令的输出更改为字符串。

user@thoth:~$ FOO=`ls *.txt`
user@thoth:~$ echo $FOO
soap.txt

编辑:如今 bash 脚本中似乎更常用一种不同形式的命令替换

 FOO=$(ls *.txt)

例如在命令中处理反斜杠的方式存在明显差异