2016-03-22 21 views
0

私は、テキストファイル.txtファイルから読み込ん数や文字列を置換

からもらった1000年と、私はLaTeXファイルにBBBBを交換したいコンテンツ AAAA = 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は、私は行を次のようにPDFを作成しようとしたとき、それは私にエラーを与え、そして、$ motor_loc

に変更されます。

pdflatex for_pdf.tex

は、どのように私の代わりに$ motor_locまたは文字列の(テキストファイルから読み込んだ値)〜1000 BBBB変更することができます。

FYI、私はCygwinとMiktexを使用していますが、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:コマンド置換の異なる形式は、より一般的に、これらの日

のbashスクリプトの中で使われているようです
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

関連する問題