CentOS系統(tǒng)里如何提高文本搜索效率?

對于系統(tǒng)管理員或程序員來說,當需要在復雜配置的目錄中或者在大型源碼樹中搜尋特定的文本或模式時,grep類型的工具大概是最受歡迎的。
如果grep是你最喜歡的工具之一,那么你可能會更喜歡ack。ack是一個基于Perl的類似于grep的命令行工具,但是搜索速度更快,能力比grep更強。尤其是當你是程序員時,我強烈推薦你使用ack來取代grep。
ack的用法非常適用與代碼搜索,因此程序員可以在源碼樹中進行復雜的查詢,而只需要更少的按鍵。
ack的特性
ack的一些非常強大的特性:
默認搜索當前工作目錄
默認遞歸搜索子目錄
忽略元數(shù)據(jù)目錄,比如.svn,.git,CSV等目錄
忽略二進制文件(比如pdf,image,coredumps)和備份文件(比如foo~,*.swp)
在搜索結(jié)果中打印行號,有助于找到目標代碼
能搜索特定文件類型(比如Perl,C++,Makefile),該文件類型可以有多種文件后綴
高亮搜索結(jié)果
支持Perl的高級正則表達式,比grep所使用GNU正則表達式更有表現(xiàn)力。
相比于搜索速度,ack總體上比grep更快。ack的速度只要表現(xiàn)在它的內(nèi)置的文件類型過濾器。在搜索過程中,ack維持著認可的文件類型的列表,同時跳過未知或不必要的文件類型。它同樣避免檢查多余的元數(shù)據(jù)目錄。
在Linux上安裝ack
盡管在大多數(shù)Linux發(fā)行版中是ack是標準包,可輕易獲得(比如在基于debian的系統(tǒng)中,是ack-grep包,而在基于Redhat的系統(tǒng)中則是ack包),但是與發(fā)行版捆綁的ack版本仍然是1.x,而ack2.0已經(jīng)發(fā)布,而且擁有更多特性。
因此我準備在官方網(wǎng)站下載,然后安裝ack。
方便的是,ack在官網(wǎng)可可作為一個單獨的Perl腳本獲得,其中整合了所有需要依賴的模塊。因此,你不需要額外安裝Perl模塊來運行這腳本。
為了在你的Linux系統(tǒng)中安裝ack,去官網(wǎng)下載最新版本的ack。在寫本文時,最新的版本是2.12
$ wget http://beyondgrep.com/ack-2.12-single-file $ sudo mv ack-2.12-single-file /usr/local/bin/ack $ sudo chmod 0755 /usr/local/bin/ack
需要注意的是,在基于Debian的系統(tǒng)中,有一個獨立的包也叫ack(漢碼轉(zhuǎn)換器)。所以如果你碰巧有使用那個包,那么你就必須重命名ack來避免命名沖突了。
ack的使用案例
1.在當前目錄遞歸搜索單詞”eat”,不匹配類似于”feature”或”eating”的字符串:
$ ack -w eat
2.搜索有特殊字符的字符串’$path=.’,所有的元字符(比如’$',’.')需要在字面上被匹配:
$ ack -Q '$path=.' /etc
3.除了dowloads目錄,在所有目錄搜索”about”單詞:
$ ack about --ignore-dir=downloads
4.只搜索包含’protected’單詞的PHP文件,然后通過文件名把搜索結(jié)果整合在一起,打印每個文件對應(yīng)的搜索結(jié)果:
$ ack --php --group protected
5.獲取包含’CFLAG’關(guān)鍵字的Makefile的文件名。文件名為*.mk,makefile,Makefile,GNUmakefile的都在考慮范圍內(nèi):
$ ack --make -l CFLAG
6.顯示整個日志文件時高亮匹配到的字符串:
$ tail -f /var/log/syslog | ack --passthru 192.168.1.10
7.要換取ack支持的文件過濾類型,運行:
$ ack --help-type
相關(guān)文章
- 今天小編就為大家?guī)鞢entos文件搜索命令的講解;希望對大家的學習會有幫助;有需要的朋友可以過來看看2016-12-09
Win10搜索不到wifi怎么辦?Win10搜索不到wifi的解決方法
Win10搜索不到wifi怎么辦?最近有朋友遇到這個問題,下面小編就給大家?guī)鞼in10搜索不到wifi的解決方法,一起來看看吧2016-12-06Win7系統(tǒng)搜索功能失效解決辦法 三步修改注冊表
如果電腦存放的文件太多,那么找不到某文件是非常常見的事情,但是不少玩家發(fā)現(xiàn)Win7系統(tǒng)搜索功能失效了,小編帶來三步修改注冊表的方法,大家參考一下吧2016-12-01Win10 UWP版《芒果TV》v3.13更新:新增全網(wǎng)搜索 記憶播放
在微軟秋季W(wǎng)in10/Surface Studio新品發(fā)布會熱潮之后,近期《芒果TV》Windows10 UWP版迅速更新v3.1.3版,優(yōu)化應(yīng)用啟動速度,支持會員卡券兌換,新增全網(wǎng)搜索、記憶播放、消2016-11-08Win10系統(tǒng)給小娜搜索框添加放大鏡、箭頭圖標的方法
說到windows10正式版系統(tǒng),我們馬上就會想到其自帶的語音助手Cortana小娜。最近,一些用戶反饋自己想要給小娜搜索框添加放大鏡、箭頭圖標,卻不知道該如何操作。下面小編就2016-10-31win10預(yù)覽版14951怎么禁用/恢復手動搜索更新?
win10預(yù)覽版14951怎么禁用/恢復手動搜索更新?wiin10系統(tǒng)中可以設(shè)置禁止使用手動搜索更新,下面我們就來看看禁止和恢復手動搜索更新的方法,需要的朋友可以參考下2016-10-26- 在深度技術(shù)Ghost Win10系統(tǒng)桌面版中,Cortana小娜絕對是非常新穎的功能,以至于讓蘋果MacOS都眼饞,把Siri也請了進去。下面小編就為大家詳細介紹win10的Cortana搜索欄顯示你愛2016-10-24
win7系統(tǒng)連接投影儀屏幕顯示正在搜索信號源的解決方法圖文教程
投影儀設(shè)備可以直接把電腦內(nèi)容投影放大到屏幕上,是現(xiàn)在辦公室會議中必備辦公軟件,但最近有windows7系統(tǒng)用戶反映,電腦上連接投影儀的時候遇到了問題,屏幕中顯示“正在搜2016-10-17Win8.1系統(tǒng)搜索功能不能用怎么辦?Win8.1搜索功能不能用的解決方法
最近有網(wǎng)友遇到win8.1搜索功能不見了的情況,這是怎么回事呢?下面小編就給大家?guī)鞼in8.1搜索功能不能用的解決方法,一起來看看吧2016-10-17- Win10 RS2 14931禁用手動掃描Windows更新功能可以幫助用戶更好的管理域內(nèi)設(shè)備,如何使用?下面小編就給大家?guī)碓敿毜慕坛蹋黄饋砜纯窗?/div> 2016-09-29
最新評論