Ich habe das folgende Shell-Skript entwickelt, um doppelte Teile des Dateinamens zu finden und zu löschen. Ähnlich muss ich in Perl-Skript auch als Perl-Skript Textverarbeitung dauert weniger Zeit vorbereiten.Perl Script Hilfe benötigt für doppelte Dateinamen
#!/bin/bash
for i in `ls -t *xml|awk 'BEGIN{FS="_"}{if (++dup[$1] >= 2) print}'`;
do
rm $i
done
ich meine Perl-Skript meinen Code in einer solchen Art und Weise herzustellen, die nur den letzten modifizierten Dateinamen-Muster zum Beispiel
File 1: AAA_555_0000
File 2: AAAA_123_123
File 3: AAAA_452_452 [latest]
File 4: BBB_555_0000
File 5: BBB_555_555
File 6: BBB_999_999 [latest]
File 7: CCC_555_0000
File 8: CCC_000_000
File 9: CCC_000_111 [latest]
Perl Script hat neueste Datei in allen Dateinamen-Muster wählen (bedeutet Teil von Dateiname) in dem Ordner und es sollte die Duplikate vergleichen und löschen. Zum Beispiel: Das Skript muss die letzte Datei im AAA-Dateinamenmuster auswählen und es muss mit anderen AAA-Mustern verglichen werden, wenn das Muster gefunden wurde, dass es gelöscht werden muss. am ende muss nur die letzte datei in allen filenamen beibehalten werden.
Schätzen Sie, wenn Sie mir mit dieser Logik helfen können.
Vielen Dank!
Was ist der "_Dateiname patterns_" - welches Muster? Erste drei gleiche Charaktere? Oder solche, die mit 'A' beginnen, dann mit' B' ...? Bitte klären Sie (ich meine, bearbeiten Sie die Frage, um eine Erklärung hinzuzufügen) – zdim
Antwort auf Sie. Das ist, was ich in Shell-Skript auch getan habe, indem ich field-Trennzeichen in awk verwende ich Teil des Dateinamens und verglichen mit anderen Dateinamen. – misterbean2
Mit "doppelte Teile" meinen Sie führende Teile gleich oder irgendein Teil? "AAA_555_0000", "BBB_555_0000" und "CCC_555_0000" haben doppelte Teile. – shawnhcorey