Ich habe zwei Dateien File_A und File_B enthalten Schlüssel/Wert-Paarevergleichen zwei Eigenschaftsdateien und ersetzen Werte
File_A
ANT_HOME=/opt/apps/apache-ant
HIBERNATE=/opt/apps/some/path/to/hibernate
BATCHDAEMON=false
BATCHEDIT_ENABLED=false
BATCHENABLED=false
----
----
<120 lines)
File_B
ANT_HOME=$ANT_DIR
HIBERNATE=$HIBERNATE_LOCATION
----
DBCONNECTION=
DBNAME=
DBUSER=
DBPASS=
DBPORT=
DBSERVER=
<70 lines>
Ich möchte Schlüssel in File_A vergleichen Schlüssel in File_B und wenn es eine Übereinstimmung gibt, ersetzen Sie Werte von File_B in file_A
Ende Ergebnis
File_A ANT_HOME = $ ANT_DIR Hibernate = $ HIBERNATE_LOCATION DbConnection = DBNAME = DBUSER = DBPASS = DBPort = DBSERVER = .... < 120 Linien>
auch einige der Werte haben "=" in ihnen
zum Beispiel
SOME_PASSWD=Qwcnyt2-49zstyq4=
also habe ich regexp verwendet, um das erste Auftreten von Werten vor "="
zu bekommen Ich benutze awk, um zu sehen, ob ich das gewünschte Ergebnis bekomme, aber ich bin nicht in der Lage, Substitution richtig zu bekommen.
awk 'BEGIN {FS = "/[^=]*/"} FNR==NR { array[$1]=$2; next } $1 in array { sub ($1, array[$2])} 1' File_B, File_A >> some_tempfile.ini
Dank im Voraus
, die schön gearbeitet, vielen Dank – TechArch