您好,登錄后才能下訂單哦!
這篇文章主要介紹“CentOS系統里提高文本搜索效率的方法有哪些”,在日常操作中,相信很多人在CentOS系統里提高文本搜索效率的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”CentOS系統里提高文本搜索效率的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
對于系統管理員或程序員來說,當需要在復雜配置的目錄中或者在大型源碼樹中搜尋特定的文本或模式時,grep類型的工具大概是最受歡迎的。
如果grep是你最喜歡的工具之一,那么你可能會更喜歡ack。ack是一個基于Perl的類似于grep的命令行工具,但是搜索速度更快,能力比grep更強。尤其是當你是程序員時,我強烈推薦你使用ack來取代grep。
ack的用法非常適用與代碼搜索,因此程序員可以在源碼樹中進行復雜的查詢,而只需要更少的按鍵。
ack的特性
ack的一些非常強大的特性:
默認搜索當前工作目錄
默認遞歸搜索子目錄
忽略元數據目錄,比如.svn,.git,CSV等目錄
忽略二進制文件(比如pdf,image,coredumps)和備份文件(比如foo~,*.swp)
在搜索結果中打印行號,有助于找到目標代碼
能搜索特定文件類型(比如Perl,C++,Makefile),該文件類型可以有多種文件后綴
高亮搜索結果
支持Perl的高級正則表達式,比grep所使用GNU正則表達式更有表現力。
相比于搜索速度,ack總體上比grep更快。ack的速度只要表現在它的內置的文件類型過濾器。在搜索過程中,ack維持著認可的文件類型的列表,同時跳過未知或不必要的文件類型。它同樣避免檢查多余的元數據目錄。
在Linux上安裝ack
盡管在大多數Linux發行版中是ack是標準包,可輕易獲得(比如在基于debian的系統中,是ack-grep包,而在基于Redhat的系統中則是ack包),但是與發行版捆綁的ack版本仍然是1.x,而ack2.0已經發布,而且擁有更多特性。
因此我準備在官方網站下載,然后安裝ack。
方便的是,ack在官網可可作為一個單獨的Perl腳本獲得,其中整合了所有需要依賴的模塊。因此,你不需要額外安裝Perl模塊來運行這腳本。
為了在你的Linux系統中安裝ack,去官網下載最新版本的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的系統中,有一個獨立的包也叫ack(漢碼轉換器)。所以如果你碰巧有使用那個包,那么你就必須重命名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文件,然后通過文件名把搜索結果整合在一起,打印每個文件對應的搜索結果:
$ ack --php --group protected
5.獲取包含’CFLAG’關鍵字的Makefile的文件名。文件名為*.mk,makefile,Makefile,GNUmakefile的都在考慮范圍內:
$ ack --make -l CFLAG
6.顯示整個日志文件時高亮匹配到的字符串:
$ tail -f /var/log/syslog | ack --passthru 192.168.1.10
7.要換取ack支持的文件過濾類型,運行:
$ ack --help-type
到此,關于“CentOS系統里提高文本搜索效率的方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。