Ein Job auf dem Server läuft und es erstellt eine Datei wie unten:Zählen Sie die Anzahl der Datensätze nach Ersetzen doppelte Werte
1000727888004
522101 John Smith
522101 John Smith
522188 Shelly King
522188 Shelly King
1000727888002
522990 John Doe
522990 John Doe
9000006000000
Derzeit sind wir dabei, den Code zu beheben, aber das wird einen Monat dauern . In der Zwischenzeit verwende ich einen Befehl, um die doppelten Datensätze wie unten zu entfernen.
perl -ne 'print unless $dup{$_}++;' old_file.txt > new_file.txt
Nachdem ich den obigen Befehl auszuführen, ist es die doppelten Einträge entfernt, sondern zählt bleiben gleich wie unten:
1000727888004
522101 John Smith
522188 Shelly King
1000727888002
522990 John Doe
9000006000000
letzte Nummer für Zeile beginnend mit 1 ist die Gesamtzahl (so sollte 4 gewesen 2 in der ersten Zeile und 2 sollte in der vierten Zeile 1 gewesen sein und 6 hätte in der letzten Zeile 3 sein sollen, beginnend mit 9). Es sollte wie folgt aussehen:
1000727888002
522101 John Smith
522188 Shelly King
1000727888001
522990 John Doe
9000003000000
Ich konnte keine Logik finden, die es beheben würde. Ich brauche Hilfe hier. Kann ich einen anderen Befehl ausführen oder etwas in meinem Perl-Befehl hinzufügen, um die Zählung ebenfalls zu korrigieren. Ja, ich kann die Datei in Notepad ++ öffnen und die Zahlen manuell korrigieren, aber ich versuche, sie automatisiert zu bekommen.
Danke!
Was das letzte Datensatz ist, beginnend mit 9? –
Das ist der Trailer der Datei mit der Gesamtzahl. Die erste 9 ist immer vorhanden und dann sind die nächsten 6 Zahlen die Zählung. Wenn es in einer Ziffer ist, dann werden 5 Nullen auf der linken Seite aufgefüllt. und die letzten 6 Zahlen sind immer 0 – Amir