In Ordnung, ich weiß, das ist eine einfache Frage, aber ich kann nicht scheinen, diese sed Befehl zu arbeiten. Ich versuche, eine Textdatei zu erhalten und ein Bit davon vom Platzhaltertext zu einem Studiencode zu ersetzen. Der Studiencode, durch den er ersetzt wird, wird beim Ausführen des Skripts mit Argumenten in das Skript übergeben. Das Problem ist, wenn ich versuche, den Platzhaltertext durch die Variable $ study zu ersetzen, ersetzt er es durch eine wörtliche "$ study".Get sed zu ersetzen Text mit Argument
Gerade jetzt meine Argumente wie folgt festgelegt:
Export Studie = 1 $
Export tag = $ 2
Exportmodus = $ 3
Export select = 4 $
Mein sed Befehl sieht so aus:
sed -i.backup -e 's/thisisthestudycodereplacethiswiththestudycode/$ Studie /' freq.spx
Gibt es eine einfache Möglichkeit, sed des Erhaltens nicht an dem buchstäblichen $ Studie aussehen, oder würde Ist es an dieser Stelle besser, es anders zu machen?
Denken Sie daran, dass Sie $ study in einen 'sed' Befehl injizieren. Was bedeutet, dass ** die sed-Semantik folgen muss. Das bedeutet, dass das Trennzeichen (/) mit einem Backslash und mehrere andere Metazeichen gelöscht werden müssen. Machen Sie nicht den Fehler, dass "Studieren" willkürliche Daten sein darf oder dass dies ein Fehler ist. – lhunath
Ja, dieses Skript wird von einem anderen Skript ausgeführt, das von einer Webseite aufgerufen wird. Wenn die Eingabe diesen Punkt erreicht, wird alles bereinigt und überprüft. –