sublime在混雜的log數據中提取你想要的內容


前幾天因為同事一個sql寫的有問題,導致我這邊處理mysql入庫出現數據丟失,沒什么辦法啊,為了回復數據,只能去翻前兩天的log了,但是怎么從十幾個幾十兆的文件中找到我們需要的數據然后提取出來呢,我的第一反映就是在服務端通過shell 腳本find方法,查找需要的數據,然后導入到一個臨時文件。然后再把這個臨時文件導出來進一步的處理。后來一個同事說,sublime可以做這個工作,所以就研究了下sublime的部分功能,原來sublime,不僅可以如此方便的在龐雜的數據中提取出我們想要的數據,而且可以按行提取,一切盡在selection里面。

首先打開需要處理的文件,找到要提取行的數據按【ctrl + F】,把數據復制到查找面板里,然后選擇【find all】,在文件中你會看到我們想選的內容被選中了,然后選擇tab中的【selection】的下拉列表中的【Expand Selection to line】,你會看到我們要查找的數據所在的行被選中,然后按【ctrl + C】賦值數據行,最后新建文件粘貼數據就好了,這樣我們所需要的數據就被提取出來了。

上面的數據雖然提取出來了,但是要怎么把他們轉化成一個個的sql語句然后開一個事務去執行呢,這里就應該用到字符串的替換操作了。

【ctrl + shift + F】彈出查找替換窗口,使用insert into語句替換我們不需要的數據就可以了,本來以為這樣就結束了,結果,最后面的數據不是相同的數值,所以不能全覆蓋。這樣還是無法解決啊,要是能去掉空行,刪除換行符就好了,於是找到了。

Sublime刪除空行

刪除空行

【ctrl + H】 進入替換模式, 然后【alt + R】或者點擊左邊第一行一個的正則表達式, 變得更灰表示使用正則模式.

第一行查找部分輸入【^\n】 替換部分為空,再replace all. 這樣就可以把所有空行都刪掉. 最簡單的方法..

刪除多余空格

同上, 進入正則表達式替換. 輸入查找 【(?ms)\ {2,}】, 替換成空格. 前者表示2個或以上空格的選取. 同理可以進行很多方便的處理.

DeleteBlankLines 插件

sublime text 中沒有直接可以刪除空行的功能和快捷鍵,但我們可以安裝一個插件"DeleteBlankLines"來實現.
插件地址:https://github.com/NicholasBuse/sublime_DeleteBlankLines
在sublime text中Ctrl+Shift+P打開命令框輸入install package,搜索DeleteBlankLines並安裝即可.

相關快捷鍵如下:
在Windows操作系統中:
Ctrl+Alt+Backspace --> 刪除所有空行
Ctrl+Alt+Shift+Backspace --> 刪除多余空行
在OSX操作系統中:
Ctrl+Alt+Delete --> 刪除所有空行
Ctrl+Alt+Shift+Delete --> 刪除多余空行
在Linux操作系統中:
Ctrl+Alt+Backspace --> 刪除所有空行
Ctrl+Alt+Shift+Backspace --> 刪除多余空行
刪除所有空行:刪除所有空行
刪除多余空行:將兩個及兩個以上的連續空行替換成一個空行
注意:如果行中帶有tab或空格字符則不會被刪除,只刪除只含有\n或\r的空行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM