我有一个包含以下内容的文本文件 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中运行此代码。
提前谢谢。
答案 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)
在命令
中如何处理反斜杠存在明显的差异