In meiner Unix AIX muss ich das Datum in einer Parameterdatei mit Systemdatum mit einem Shell-Skript ersetzen, die Post-Sitzung von PowerCenter ausgeführt wird.Ersetzen Sie das Datum in einer Parameterdatei mit Systemdatum
Ich kann SED verwenden, um eine Zeichenfolgevariable zu ersetzen, aber mit Datum zu Problem auftreten.
Ich habe versucht, Kommas anstelle von Schrägstrichen als Trennzeichen zu verwenden. Der Inhalt der Testdatei sieht wie folgt aus:
$$TESTFIELD=12/29/2016 14:57:51
Der sed Befehl, den ich fühlte, war funktionieren sollte:
sed -e "s,^\($$TESTFIELD=\).*,\1'date +"%D %T"'," testfile.txt > tmp.$$
Nach dem ich die tmp.$$
zu testfile.txt
bewegen, aber die Ergebnisse warf den folgenden Fehler:
sed: 0602-404 Function s,^\(14680298TESTFIELD=\).*,\1'date +%D cannot be parsed.
beachten Sie, dass Sie doppelte Anführungszeichen verwenden, so 'sed -e" s ... "' expandiert '$$ TESTFIELD' auf seinen Wert. – fedorqui
Sie können sich auch die [Wie ändere ich das Datumsformat in sed?] (Http://StackOverflow.com/a/34080390/1983854) ansehen, um zu sehen, wie man einen externen Befehl innerhalb von 'sed' ausführt. Grundsätzlich müssen Sie die '-e'-Flagge verwenden. – fedorqui
Vielleicht: 'Jetzt = $ (Datum +"% D% T "); sed "s, =. * $, = $ Nun," testfile.txt >> tmp. $$ ' –