Wir haben zwei Dateien file1.txt und file2.txt in DateiHinzufügen von Kommentaren
file1.txt
PropertyA
PropertyB
PropertyC
####Some Comments##
PropertyA
PropertyB
PropertyC
PropertyD
file2.txt
#This is Property A
PropertyA=valueforpropertyA
PropertyB=valueforpropertyB
#Adding values to Property C
PropertyC=valueforpropertyC
#Value for Property D
PropertyD=valueforpropertyD
#This is Property E
PropertyE=valueforpropertyE
PropertyF=valueforpropertyF
#End of Properties
#End of values
#End of Files
den folgenden Befehl verwenden wir zum Schreiben Die Werte für file1.txt aus file2.txt nach den Eigenschaften, die im Abschnitt #### Some Comments ## von file1.txt angezeigt werden.
awk -F'=' 'FNR==NR{if (p) a[$0]; else {print; if ($0 ~ /####Some Comments##/) p=1} next}
$1 in a' file1.txt file2.txt > _file1.txt && mv _file1.txt file1.txt
Dies ist die Ausgabe:
PropertyA
PropertyB
PropertyC
####Some Comments##
PropertyA=valueforpropertyA
PropertyB=valueforpropertyB
PropertyC=valueforpropertyC
PropertyD=valueforpropertyD
Wir den obigen Befehl müssen aus den Kommentaren drucken, die auch in file2.txt erscheinen werden. Dies sollte die Ausgabe von file1.txt
*PropertyA
PropertyB
PropertyC
####Some Comments##
#This is Property A
PropertyA=valueforpropertyA
PropertyB=valueforpropertyB
#Adding values to Property C
PropertyC=valueforpropertyC
#Value for Property D
PropertyD=valueforpropertyD
#End of Properties
#End of values
#End of Files*
sein Wie kann dies mit dem obigen Befehl getan werden?
Einige verschleierten awk Code. – SaintHax