ich passen nicht möchte alle Dateien in einem bestimmten Ordner löschen, die das Muster entsprechen nicht ^transactions_[0-9]+
Wie rekursiv alle Dateien im Ordner löscht, die ein bestimmtes Muster
Lassen Sie sich sagen, ich habe diese Dateien im Ordner
file_list
transactions_010116.csv
transactions_020116.csv
transactions_check_010116.csv
transactions_check_020116.csv
ich möchte transactions_check_010116.csv
und transactions_check_020116.csv
löschen und die ersten beiden verlassen, wie sie verwenden ^transactions_[0-9]+
ich habe versucht, find
zu verwenden so etwas wie unten, aber dieser Ausdruck löscht alles in dem Ordner nicht nur die Dateien, die das Muster nicht entsprechen:
find /my_file_location -type f ! -regex '^transactions_[0-9]+' -delete
Was ich versuche, hier zu tun ist, mit regex alle Dateien im Ordner finden, die mit ^transactions_[0-9]+
starten nicht und lösche sie.
danke für deine antwort, leider gibt es 'find: unbekanntes prädikat -E 'zurück - gibt es eine andere möglichkeit regex-ausdrücke mit einem find-befehl zu verwenden? Ich habe versucht, '/ my_file_location -regextype sed zu finden! -regex ". */transactions_ [0-9] \ +" -type f -delete' aber das hat das Muster nicht gefunden und so alles im Ordner gelöscht –
@SamGilbert: tut das 'finde/meine_datei_stelle! -regex '. */transactions_ [0-9] + $' -type f -print listet die Dateien auf, die Sie löschen möchten? Und da ich nicht das gleiche "finde" wie du, was kannst du an "-regextype" weitergeben? –
ah Ich habe es, das Muster '. */Transactions_ [0-9] +. * '' Druckt die erforderlichen Dateien! So jetzt können Sie sie löschen, danke für Ihre Hilfe –