Ich möchte den Child_value mit dem Parent_value mit awk überschreiben. Die Lösung muss generisch für größere Datenquellen sein. Der Eltern-Datensatz ist definiert durch $ 1 == $ 2.Awk ersetzen nach Schleife
Dies ist meine Eingabedatei (Format: ID; PARENT_ID; VALUE):
10;20;child_value
20;20;parent_value
Dies ist das Ergebnis Ich mag:
10;20;parent_value
20;20;parent_value
Das ist mein aktueller Ansatz ist:
awk -F\;
BEGIN {
OFS = FS
}
{
if ($1 == $2) {
mapping[$1] = $3
}
all[$1]=$0
}
END {
for (i in all) {
if (i[$3] == 'child_value') {
i[$3] = mapping[i]
}
print i
}
}
' file.in
Unnötig zu sagen, dass es nicht so funktioniert ;-) Kann jemand helfen?
ist 'child_value' konstant ist oder dynamischer Wert? Wird es mehr als einen Kind-Eltern-Wert haben? Wenn ja, wie wird das übergeordnete Element und das entsprechende untergeordnete Element abgeglichen? – sat
Kann ein Kind ein Kind haben (z. B. "5; 10; typical_teen_value")? Erhält es 'parent_value' oder' child_value'? –
@JamesBrown gibt es keine Rekursion – user2043423