2016-06-09 126 views
0

我有.srt文件由相同模式的段落組成。 每個文檔中的段落數量是不同的。 我想保留段落的數量,保持在第二行的時間,然後基本上只保留「BAROMETER:」和旁邊的數字。 最後一行也可以出去。批量刪除.srt文件中的某些段落的行

非常感謝您的幫助!

我使用的是Mac,想做到這一點在自動機或任何其他程序

這是段落看起來怎麼樣現在

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 

,這是我會怎麼他們想看起來像是事後

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

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

回答

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


編輯:根據你的評論,似乎你想要做一個文件夾中的每個文件,並在原地替換。在這種情況下,最好使用 findsed,例如,

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

我從來沒有使用過的Automator的任何事情真的,但在documentation相當詳細的例子。

+0

我努力嘗試,但無法獲得完整的automator動作。 假設我想對我選擇的文件夾中的所有文件執行此操作,我將1.在automator中創建一個新的應用程序 2.添加「檢查文件夾」 3.添加shell腳本 其餘我不能真的弄清楚自己:( 基本上我的夢想是一個應用程序要求的文件夾,將所有的文本文件的文件夾中,並用相同的名字,我可以選擇一個位置保存它們。 感謝很多提前,您的幫助 – Philipp

+0

顯然,sed使用的正則表達式並不是我所需要的,它刪除了原始.srt文件的所有內容......有人可以幫助我用更好的版本替換正則表達式嗎?請查找示例。附加srt文件 [鏈接](https://dl.dropboxusercontent.com/u/19 37633/DJI_0002.SRT) – Philipp