這篇文章主要介紹了ripgrep有哪些功能的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇ripgrep有哪些功能文章都會有所收獲,下面我們一起來看看吧。
網(wǎng)站設(shè)計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);網(wǎng)站制作、成都網(wǎng)站設(shè)計收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營了十年的創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司。
第一點(diǎn),`grep` 是咱們 Linuxer 幾乎每天都會用到的行搜索工具,幾乎所有發(fā)行版都自帶有這個工具。多少年來,沒有什么改變,如一潭死水。`ripgrep`的出現(xiàn),給這個領(lǐng)域帶來了一場轟動。
ripgrep 很牛,現(xiàn)在其 github 已經(jīng)接近 14000 stars 了。
ripgrep 超越 grep 的第一點(diǎn)就是 ripgrep 是跨平臺的,不再歧視 Windows 用戶,Windows, Linux,macOS 效果完全一致。
第二點(diǎn),擁有更漂亮的輸出。
當(dāng)然,美這個問題,眾口難調(diào)。
第三,強(qiáng)力的性能。
是騾子是馬,拿出來溜溜。
對比 1 :
搜索 Linux 內(nèi)核源文件(在執(zhí)行完 make defconfig && make -j8
之后),CPU Intel i7-6900K 3.2 GHz,ripgrep 開了 SIMD 支持。
工具 | 命令 | 行統(tǒng)計 | 耗時 |
---|---|---|---|
ripgrep (Unicode) | rg -n -w '[A-Z]+_SUSPEND' | 450 | 0.106s |
git grep | LC_ALL=C git grep -E -n -w '[A-Z]+_SUSPEND' | 450 | 0.553s |
The Silver Searcher | ag -w '[A-Z]+_SUSPEND' | 450 | 0.589s |
git grep (Unicode) | LC_ALL=en_US.UTF-8 git grep -E -n -w '[A-Z]+_SUSPEND' | 450 | 2.266s |
sift | sift --git -n -w '[A-Z]+_SUSPEND' | 450 | 3.505s |
ack | ack -w '[A-Z]+_SUSPEND' | 1878 | 6.823s |
The Platinum Searcher | pt -w -e '[A-Z]+_SUSPEND' | 450 | 14.208s |
(上圖, ack
有一個 bug :))
對比 2:
還是搜索 Linux 內(nèi)核源代碼,搜索范圍和參數(shù)有些變化。
工具 | 命令 | 行統(tǒng)計 | 耗時 |
---|---|---|---|
ripgrep | rg -L -u -tc -n -w '[A-Z]+_SUSPEND' | 404 | 0.079s |
ucg | ucg --type=cc -w '[A-Z]+_SUSPEND' | 390 | 0.163s |
GNU grep | egrep -R -n --include='*.c' --include='*.h' -w '[A-Z]+_SUSPEND' | 404 | 0.611s |
(ucg
在處理符號鏈接的時候,策略有所不同)
對比3:
搜索一個約 9.3G 的大文件。
工具 | 命令 | 行統(tǒng)計 | 耗時 |
---|---|---|---|
ripgrep | rg -w 'Sherlock [A-Z]\w+' | 5268 | 2.108s |
GNU grep | LC_ALL=C egrep -w 'Sherlock [A-Z]\w+' | 5268 | 7.014s |
為什么推薦使用 ripgrep
因?yàn)樗采w了其它類似搜索工具的大部分特性,并且更快。
ripgrep 會識別 .gitignore 文件并忽略里面指定的文件和目錄。默認(rèn)不會搜索隱藏文件和目錄。默認(rèn)不會搜索二進(jìn)制文件。
ripgrep 可指定搜索某些類型的文件。比如,rg -tpy foo
只搜索 py 文件,rg -Tjs foo
在搜索時排除 js 文件。
ripgrep 支持 Unicode。
可選擇 PCRE2 作為正則引擎。
支持非 UTF-8 文件的搜索。
支持壓縮包里面文件的搜索。
支持任意預(yù)處理過濾器。
還等什么,馬上執(zhí)行
$ cargo install ripgrep
關(guān)于“ripgrep有哪些功能”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“ripgrep有哪些功能”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。