2016-06-09 17 views
0

Ich habe .srt-Dateien, die aus Absätzen mit dem gleichen Muster bestehen. Die Anzahl der Absätze in jedem Dokument ist unterschiedlich. Ich möchte die Nummer des Absatzes behalten, die Zeit in der zweiten Zeile behalten und dann im Grunde nur den "BAROMETER:" und die Nummer daneben behalten. die letzte Zeile kann auch ausgehen.Batch löschen bestimmte Zeilen von Absätzen in .srt-Dateien

Jede Hilfe wird sehr geschätzt!

ich einen Mac leite und möchte es in Automator tun oder jedes andere Programm, das

dies ist, wie die Absätze nun so aussehen wie

1 
00:00:01,000 --> 00:00:02,000 
HOME(11.6488,51.7185) 2016.06.02 13:19:11 
GPS(11.6488,51.7185,18) BAROMETER:3.5 
ISO:100 Shutter:400 A:63 AA:63 EV: Fnum:6.3 

2 
00:00:02,000 --> 00:00:03,000 
HOME(11.6488,51.7185) 2016.06.02 13:19:12 
GPS(11.6488,51.7185,17) BAROMETER:3.5 
ISO:100 Shutter:400 A:63 AA:63 EV: Fnum:6.3 

und das ist, wie ich sie möchte aussehen wie danach

3 
00:00:03,000 --> 00:00:04,000 
BAROMETER:4.3 

4 
00:00:04,000 --> 00:00:05,000 
BAROMETER:5.3 

Antwort

1
grep -oE "^[0-9].*$|^$|BAROMETER.*$" input-file 


EDIT: Basierend auf Ihrem Kommentar scheint es, dass Sie es für jede Datei in einem Ordner tun und ersetzen möchten. In diesem Fall ist es besser, find und sed zu verwenden, z.B.

find "[email protected]" -type f -name "*.srt" -exec \ 
    sed -i.bak '/^[0-9]\|BAROMETER\|^$/!d;s/^.*\(BAROMETER\)/\1/' {} \; 

Ich habe nie wirklich Automator für alles verwendet, aber es ist ziemlich detaillierte Beispiele in den documentation.

+0

Ich habe versucht, aber konnte nicht eine komplette Automator Aktion daraus bekommen. Angenommen, ich möchte diese Aktion für alle Dateien in einem Ordner ausführen, den ich wählen würde 1. Erstellen Sie eine neue Anwendung im Automator 2. Fügen Sie "Check-Ordner" 3. Fügen Sie ein Shell-Skript den Rest kann ich nicht wirklich Finde mich heraus :( im Grunde mein Traum wäre eine App fragt nach einem Ordner, konvertiert alle Textdateien in den Ordner und speichern sie mit den gleichen Namen an einem Ort, den ich wählen kann. Vielen Dank im Voraus, Ihre Hilfe – Philipp

+0

Offenbar ist der von sed verwendete reguläre Ausdruck nicht das, was ich brauche.Es entfernt ALLE Inhalte meiner ursprünglichen .srt-Datei ... Kann mir jemand helfen, den regulären Ausdruck durch eine bessere Version zu ersetzen? Bitte finden Sie ein Beispiel. srt Datei angehängt [link] (https://dl.dropboxusercontent.com/u/19 37633/DJI_0002.SRT) – Philipp