2016-03-22 3 views
0

У меня есть текстовый файл с следующим содержанием АААА = 1000прочитать номер из текстового файла и заменить строку в файле .tex

Я хочу заменить BBBB в LaTeX файл с 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 или строки.

FYI, я использую Cygwin и MikTex и будет пытаться запустить этот код в Raspberry Pi 2.

Спасибо заранее.

ответ

0

Одиночные кавычки в аргументах sed сохранить ваш переменный из расширяются, так что идти от одинарных кавычек в двойные кавычки

[email protected]:~$ FOO=ABC 
[email protected]:~$ echo $FOO 
ABC 
[email protected]:~$ echo "$FOO" 
ABC 
[email protected]:~$ echo '$FOO' 
$FOO 

Другого типа цитаты, которые также могут оказаться полезными обратно клещами, что изменить вывод команды в строки.

[email protected]:~$ FOO=`ls *.txt` 
[email protected]:~$ echo $FOO 
soap.txt 

EDIT: другая форма подстановки команд, как представляется, наиболее часто используемых в Баш сценариев в эти дни

FOO=$(ls *.txt) 

Есть очевидные различия относительно того, как обратные косые обрабатываются в команде, например

+0

Спасибо! На самом деле это сработало, за исключением того, что я нашел другую проблему ... Когда я вручную набираю 'motor_loc = 1000', тогда он работает, но я понимаю, что следующая строка не считывает значение из motor.txt' set motor_loc = grep -i 'aaaa' motor .txt | awk '{print $ 2}' ' –

+0

Я не знаю, пытались ли вы использовать обратные ссылки или нет. Разметка в комментариях неловкая. так как код помечен оболочкой в ​​обратных записях в комментарии, как можно помещать обратные ссылки внутри кода в комментарии на stackoverflow – infixed

+0

Я добавил обратные ссылки в ответ – infixed