2016-03-22 1 views
0

ich eine Textdatei mit folgendem Inhalt aaaa habe = 1000las Anzahl von TXT-Datei und Ersetzen-String in .tex Datei

I bbbb in LaTeX-Datei mit 1000 ersetzt werden soll, dass ich aus Textdatei bekam

Ich habe folgende Codes versucht, aber nicht funktioniert.

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

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

An diesem Punkt wird bbbb bis $ motor_loc

Dann änderte sich, als ich versuchte, pdf zu erstellen mit der Linie folgen, gibt es mir einen Fehler.

pdflatex for_pdf.tex

Wie kann ich bbbb bis 1000 (Wert aus Textdatei lesen) ändern statt $ motor_loc oder String.

FYI, ich bin mit Cygwin und Miktex und werden versuchen, diesen Code in Raspberry Pi 2.

Sie ausführen Vielen Dank im Voraus.

Antwort

0

Die einfache Anführungszeichen in den Argumenten zu sed halten Sie Ihre Variable erweitert aus ist, so gehen von einfachen Anführungszeichen zu doppelte Anführungszeichen

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

Eine andere Art von Zitaten, die auch nützlich sein können Zecken sind zurück, dass die Änderung Ausgabe eines Befehls in Strings.

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

EDIT: eine andere Form von Kommandosubstitution scheint

FOO=$(ls *.txt) 

häufiger in diesen Tagen in Bash-Skripte verwendet werden sollen Es offensichtlichen Unterschiede, wie Schrägstriche zum Beispiel in dem Befehl behandelt werden

+0

Vielen Dank! Eigentlich hat es funktioniert, außer dass ich ein anderes Problem gefunden habe ... Wenn ich 'motor_loc = 1000' manuell eintippe, dann funktioniert es, aber ich merke, dass die folgende Zeile den Wert von motor.txt nicht anzeigt' set motor_loc = grep -i 'aaaa' Motor .txt | awk '{print $ 2}' ' –

+0

Ich weiß nicht, ob du versucht hast, Backticks zu setzen oder nicht. Markup in Kommentaren ist peinlich. Da der Code in einem Kommentar durch ein Gehäuse in Backticks markiert ist, wie setzt man Backticks innerhalb von Code in Kommentare auf stackoverflow – infixed

+0

Ich habe Backticks in die Antwort eingefügt – infixed

Verwandte Themen