Hallo,
ich betreibe dnsmasq als DHCP server. Dieser führt die DHCP Leases in /var/lib/misc/dnsmasq.leases in folgender Form:
1 2 | 1397660027 00:11:22:33:44:55 192.168.1.100 host1 * 1397649661 66:77:88:99:aa:bb 192.168.2.102 host2 * |
In Spalte 1 befindet sich das Leasezeit Ende in Epoch Format:
1 2 | $ date -d @1397660027 +%F\ %T 2014-04-16 16:53:47 |
Jetzt würde ich gern zwecks verbesserter Lesbarkeit das Epoch Datum bei der Ausgabe in ein normales Datum umwandeln. Folgenden Versuch habe ich unternommen:
1 2 3 | $ sed "s/\([0-9]\{10\}\)/$(date -d @\1 +%F\ %T)/" /var/lib/misc/dnsmasq.leases 1970-01-01 01:00:01 00:11:22:33:44:55 192.168.1.100 host1 * 1970-01-01 01:00:01 66:77:88:99:aa:bb 192.168.2.102 host2 * |
Leider funktioniert anscheinend bei der Command Substitution innerhalb sed die Patternübergabe mit \1 nicht mehr, so dass hier die Epoch Zeit stets durch date -d @1 +%F\ %T (= 1970-01-01 01:00:01) ersetzt wird. Wie bekomme ich das sed Pattern \1 in die Command Substitution $(date...) übergeben?
Vielleicht hat ja jemand eine Idee, wie ich das gewünschte Ergebnis erreiche?
Danke und Gruß Thomas