Fehlende Nummern finden

841
Eli Shain

Ich habe eine große Liste von Dateien mit Namen (Videos)

Es gelang mir, alle Dateinamen in eine Textdatei zu schreiben. Jetzt habe ich eine Textdatei mit vielen Dateinamen (eine Episode pro Zeile). Jetzt brauche ich etwas, das die Textdatei lesen kann und mir sagt, welche Folgenummer Efehlt

S1-E18-(Date)-(Title)-(Random numbers).mp4 

Hier ist ein Beispiel einer Liste

S1-E1-20100526-title-of-video-1400316375.mp4 S1-E3-20100517-title-of-video-15457547.mp4 S10-E5-20100421-title-of-video-14467457.mp4 S5-E7-20120912-title-of-video-17467457.mp4 

In diesem Fall ist es leicht zu sehen, dass die Dateien S1-E2und S10-E4fehlen. aber wenn ich eine große Liste habe, wie kann ich dann die fehlenden Dateien finden? (Leave Season number S1, S2) muss nur die EEpisodenanzahl überprüfen

Die größte Nummer der vorhandenen Datei lautet S50-E2184und Die kleinste Nummer der vorhandenen Datei istS1-E1

2
Was hast du versucht? Eric F vor 5 Jahren 1
Dein Beispiel ist nicht sehr gut. harrymc vor 5 Jahren 0
Ist die Anzahl der Episoden für jede Staffel festgelegt? oder zumindest bekannt? glenn jackman vor 5 Jahren 0
@EricF Ich habe nichts versucht Eli Shain vor 5 Jahren 0
@harrymc Ich weiß, dass mein Englisch nicht gut ist, Eli Shain vor 5 Jahren 0
@glennjackman-Nummern sind festgelegt. Eli Shain vor 5 Jahren 0
Dein Englisch ist gut genug. Ich verstehe, dass S10-E4 fehlt, aber was ist mit S10-E1 bis E3 und E5 zu was auch immer und wir wissen nicht die letzte Zahl. Sie geben nicht genügend Informationen, um das gesamte Problem zu verstehen. harrymc vor 5 Jahren 2
Vielleicht hätten Sie unter https://softwarerecs.stackexchange.com/ nachfragen sollen? Mawg vor 5 Jahren 0
Sortieren Sie es mit "sort -V", um nach Saison und Episode zu sortieren, oder "sort -t--k2", um nur nach Episode zu sortieren. Dann können Sie eine Schleife ausführen, um die fehlenden Staffeln / Episoden zu erhalten. Paulo vor 5 Jahren 0

1 Antwort auf die Frage

0
Robert Ranjan

Speichern Sie alle Namen in einer Datei mit dem Namen "file_with_list_of_files" und führen Sie den folgenden Befehl in einem Linux / Unix-Terminal aus [ich habe es in einem Mac-Terminal versucht]:

cat file_with_list_of_files | sed 's/^[A-Z][0-9]*-//g' | grep -v "^E" 

-- oder --

cat file_with_list_of_files | awk -F- '' | grep -v "^E" 

In dieser Liste werden alle Dateinamen nach dem ersten - (Bindestrich) nicht mit einem E gekennzeichnet. Möglicherweise finden Sie auch andere Möglichkeiten.