使用 shell 腳本批量處理文件

從網(wǎng)上自動下載的電影字幕文件中,大部分是srt,ass\ssa 這類的文本文件岔擂,另外有些是壓縮包(目前只有 rar 和 zip)赛不。需要批量解壓這些文件惩嘉,并清理不合格文件和目錄。
我大概想了想踢故,shell 腳本應該是相對輕量文黎、簡單而且代碼量小的方式了,于是寫了這個我平生第一個有用的 shell 腳本殿较。

腳本功能:遍歷 subtitle 目錄耸峭,然后在電影目錄下的英文(eng)目錄執(zhí)行一些操作:

  • 如果是壓縮文件,解壓
  • 清理子目錄
  • 清理壓縮包
  • 清理多文件目錄
  • 清理非指定格式文件
  • 更新數(shù)據(jù)庫
#!/bash/bin
source ./mysql.sh

for dir in `ls subtitle`
do
    echo 正在處理 $dir
    dir_eng=subtitle/$dir/eng
    if [ -d $dir_eng ]; then
        file=`ls $dir_eng `
        # 解壓 zip 和 rar, overwrite mode
        if [[ "$file" =~ zip$ ]]; then
            unzip -q  -o "$dir_eng/*.zip" -d $dir_eng
        elif [[ "$file" =~ rar$ ]]; then
            rar  x -inul -o+ "$dir_eng/*.rar" -d $dir_eng 
        fi
        echo  '  已解壓'

        #### 解壓后,處理目錄:  ####

        # 1. 刪除 eng 下的所有目錄
        dir_in_eng=`ls -l $dir_eng | grep -E "^d"`
        if [ "$dir_in_eng" != "" ]; then
            find $dir_eng/* -type d  | xargs rm -rf
        fi

        # 2. 刪除所有壓縮文件
        rm -f $dir_eng/*.{zip,rar}

        # 3. 清空多文件目錄
        file_num=`ls $dir_eng | wc -l`
        if [ $file_num -gt 1 ]; then
            rm $dir_eng/*
        fi

        # 4. 不是 srt 和 ass/ssa 的文件刪除
        # grep 貌似不支持環(huán)視, -P 使用 Perl 語法
        err_file=`ls $dir_eng | grep -Po '.*(?<!srt|ass|ssa)$'`
        if [ -n "$err_file" ]; then
            rm -f $dir_eng/$err_file
        fi

        echo '  文件清理已完成'
    fi

    # 5. 空目錄需要更新數(shù)據(jù)庫
    file_num=`ls $dir_eng | wc -l`
    if  [ "$file_num" = "0" ]; then
        mysql $SQLINFO "UPDATE subtitle SET subtitle_eng='' WHERE zmk_id = $dir"
        echo '  數(shù)據(jù)庫已更新'
    fi
    echo -e '  子任務結(jié)束\n'
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淋纲,一起剝皮案震驚了整個濱河市劳闹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖本涕,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件业汰,死亡現(xiàn)場離奇詭異,居然都是意外死亡菩颖,警方通過查閱死者的電腦和手機样漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來位他,“玉大人氛濒,你說我怎么就攤上這事《焖瑁” “怎么了舞竿?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窿冯。 經(jīng)常有香客問我骗奖,道長,這世上最難降的妖魔是什么醒串? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任执桌,我火速辦了婚禮,結(jié)果婚禮上芜赌,老公的妹妹穿的比我還像新娘仰挣。我一直安慰自己,他們只是感情好缠沈,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布膘壶。 她就那樣靜靜地躺著,像睡著了一般洲愤。 火紅的嫁衣襯著肌膚如雪颓芭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天柬赐,我揣著相機與錄音亡问,去河邊找鬼。 笑死肛宋,一個胖子當著我的面吹牛州藕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酝陈,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼床玻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了后添?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遇西,沒想到半個月后馅精,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡粱檀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年洲敢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茄蚯。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡压彭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渗常,到底是詐尸還是另有隱情壮不,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布皱碘,位于F島的核電站询一,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏癌椿。R本人自食惡果不足惜健蕊,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踢俄。 院中可真熱鬧缩功,春花似錦、人聲如沸都办。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脆丁。三九已至世舰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間槽卫,已是汗流浹背跟压。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留歼培,地道東北人震蒋。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像躲庄,于是被迫代替她去往敵國和親查剖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354