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

时间:2016-03-22 23:14:06

标签: sed grep cygwin latex miktex

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

我想将LaTeX文件中的bbbb替换为我从文本文件

获得的1000

我尝试过以下代码,但没有效果。

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

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或string。

仅供参考,我正在使用Cygwin和Miktex,并尝试在Raspberry Pi 2中运行此代码。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

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)

在命令

中如何处理反斜杠存在明显的差异