借助常見工具快捷實現錄音檔案的查詢與匯出

2021-06-25 18:02:02 字數 1641 閱讀 5556

最近blhy的客戶提出這個需求,對方提供一批來電的流水號,讓我們給出相應的錄音檔案。傳統的情況下,客戶方一般需要的是某一段時間內的錄音,由於系統中的錄音檔案的檔名是按照年月日時分秒這個規則去命名的,所以這種情況下用命令查詢和打包都比較方便。而現在是對方給我們的只是一段時間內的指定流水號。

個人認為這兩種方法都有點問題,針對思路(1),如果總的錄音檔案少的話,還比較好處理,如果錄音檔案多的話,簡直就是場災難,首先你打包檔案需要時間,另外你再從其中去找的話,無異***撈針,這裡先假定錄音檔名和流水號在名稱上有對應關係;針對思路(2),挨個查詢比較靠譜,但是如果對方給出的列表比較長的話,這就是一項重複的工作,傷神費力,也是一場災難。

我通過觀察發現,blhy提供的流水號是與錄音檔名沒有直接的關係的,所以我的思路是:先試圖通過流水號去找到錄音檔名中的區域性或者全部(通過excel去匹配,主要是找到對應關係),然後組裝命令(editplus工具或者其他),寫成shell指令碼,通過執行shell指令碼去查詢這些錄音檔案並打包壓縮,最後通過winscp工具匯出到本地。

於是,按照這個思路,分下面幾步走:

1、在資料庫的call_pickup_specimen_info表中,儲存的有流水號與錄音檔名區域性的對應關係,流水號是specimen_code這個字段,區域性的錄音檔名是userfield_id這個字段,於是通過在資料庫中執行查詢這兩列的sql語句(例如select specimen_code,userfield_id from `call_pickup_specimen_info` where specimen_code between '2014090100110054' and '2014090623595954'),將這兩列的資料查詢出來,全選,複製到excel中;

2、將查詢的流水號資料複製到excel的sheet2中,使用excel的vlookup函式,將sheet2中的流水號對應的錄音檔名區域性的userfield_id資訊匹配出來;

3、通過匹配得到userfield_id資訊後,要考慮拼接linux命令了,完整的linux命令類似「find /var/spool/asterisk/monitor/1 -name '*20140825*' | xargs zip "/opt/blhytest.zip"。可以很明顯的看出,我們需要在剛剛匹配出來的userfield_id資訊的前後分別加上一段固定的內容,來拼接成我們所需要的linux命令。不喜歡黃師傅用的notepad++,一直喜歡使用editplus這個文字編輯工具,推薦。將userfield_id複製到editplus之後,通過全選文字內容--右鍵「格式」--行注釋--輸入注釋符,這裡我寫的是「find /var/spool/asterisk/monitor/1 -name '*」,也即命令的前半部分;通過「搜尋」--「替換」選單,將「\n」替換為「*' | xargs zip "/opt/blhytest.zip" \n」,注意勾選下面的「使用正規表示式」,即可在每行的末尾加入固定的內容,至此我們的命令已經拼接完成了,很快,至少比excel要快;

4、將該檔案儲存為.sh格式的檔案,例如我寫的是blhyexport.sh,通過winscp工具上傳到伺服器上任意目錄下,自己記得這個路徑就行;

5、使用 "chmod 777 blhyexport.sh",為該檔案授權;

6、通過"./blhyexport.sh"就可以執行該指令碼打包錄音檔案了,螢幕閃現的是一行行的執行過程,整個打包的過程很快;

window自帶的常見工具

1.calc 啟動計算器 3.certmgr.msc 證書管理實用程式 4.charmap 啟動字元對映表 5.chkdsk.exe chkdsk磁碟檢查 管理員身份執行命令提示符 6.cleanmgr 開啟磁碟清理工具 7.cliconfg sql server 客戶端網路實用工具 8.cmstp...

go實現的檔案同步工具

檔案同步工具,適用於檔案同步和新增檔案 自動建立目錄 同步多個專案,支援自動提交svn。同步多個專案時,工具用的是併發協程處理,同時進行,速度還是ok,而提交svn選項由於程式發起,會有點延遲,可接受範圍。專案鏈結 git鏈結 有完整 和windows下的可執行程式 工具支援內容 使用步驟 需要安裝...

實現錄音時隨聲音大小變化的UI,以及檔案上傳功能。

核心 在錄音開始時同事開啟如下執行緒,每隔一段時間獲取音量大小。然後根據音量大小重新整理ui new thread new runnable catch exception e start 這裡是通過廣播實現,傳送廣播通知相關頁面重新整理ui handler handler new handler ...